簡體   English   中英

從clojure項目創建可執行jar文件?

[英]Creating an executable jar file from a clojure project?

我有一個clojure項目,使用光滑的2D游戲引擎,我試圖作為可執行jar文件運行。 我在Netbeans和Eclipse中創建了這個項目,我沒有把它們導出成可執行格式的運氣。 它一直給錯誤找不到主類,然后給我的主類。 我已經嘗試編輯清單文件來更改名稱,希望它能找到它但到目前為止沒有運氣。

它確實在開發環境中運行,但不在其外部運行。

自從我發布這個問題已經有一段時間了,我認為我會堅持我發現的,因為對於需要回答這個問題的人來說。

我現在使用Leiningen來管理我的項目,雖然我已經開始使用cljr ,這是一個補充它的repl和包管理器。 這些都可以使生成可運行的jar文件變得更加簡單。

以Leiningen為例,使用網站上的說明進行設置,然后在工作區中調用lein new 這將創建一個文件夾來存放項目以及源文件的子文件夾,並測試自述文件和project.clj文件。

使用您將使用的依賴項編輯project.clj。 開發依賴項是純粹用於開發的依賴項,例如下面示例中顯示的swank-clojure。

(defproject myproject "0.0.1-SNAPSHOT"
  :description "My Personal Project."
  :url "http://example.com/my-project"
  :dependencies [[org.clojure/clojure "1.1.0"]
                 [org.clojure/clojure-contrib "1.1.0"]
                 [**other dependencies**]]
  :dev-dependencies [[swank-clojure "1.2.1"]]
  :main [org.myproject.core])

我發現swank-clojure很有用,因為你可以輸入lein swank來啟動一個lein swank實例,你可以通過emacs連接到它。

:main定義哪個命名空間包含-main函數。

調用lein uberjar將創建一個獨立的jar,然后運行。

希望這可以幫助任何有問題的人!

我不得不將clojure.jar和clojure-contrib.jar添加為項目的“依賴項”,以使其包含在jar中。 一旦我得到了,我就可以運行生成的罐子。 請記住,Netbeans有自己的clojure.jar,用於自行運行插件,這不需要與程序使用的clojure.jar相同。 Netbeans有一個添加庫的菜單。 您需要將clojure [-contrib] .jar添加到構建和運行庫中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM