20


4

実行可能なjarファイルとして実行しようとしている滑らかな2Dゲームエンジンを使用するclojureプロジェクトがあります。 私はNetbeansとEclipseの両方でプロジェクトを作成しましたが、それらを実行可能形式にエクスポートすることはできませんでした。 それはエラーがメインクラスを見つけることができませんでした、続けて私のメインクラスを与えることを続けています。 私はマニフェストファイルを編集して名前を変更してみましたが、これまでのところうまくいきません。

開発環境では動作しますが、外部では動作しません。

2 Answer


16


この質問を投稿してからしばらく時間が経ちましたが、この質問が必要な人には答えた後に私がそれ以来見つけたものを固執すると思いました。

私はプロジェクトの管理にhttp://github.com/technomancy/leiningen [Leiningen]を使用していますが、私はhttp://github.com/liebke/cljr[cljr]を試してみました。それを補完します。 これらのどちらでも、実行可能なjarファイルを生成するのがはるかに簡単になります。

例としてLeiningenを取り上げることは、サイト上の指示を使用してそれを設定し、そしてあなたのワークスペースで `lein new`を呼び出します。 これにより、プロジェクトを格納するフォルダとソースのサブフォルダが作成され、readmeファイルとproject.cljファイルがテストされます。

使用する予定の依存関係を使用してproject.cljを編集します。 dev-dependenciesは、以下の例に示すように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`とタイプしてemacs経由で接続できるswankインスタンスを起動できます。

:main defines what namespace contains the -main function.

`lein uberjar`を呼び出すと、実行されるスタンドアロンのjarファイルが作成されます。

うまくいけば、それは私の問題を抱えていた人なら誰でも助けになる!


3


プロジェクトに "依存関係"としてclojure.jarとclojure-contrib.jarを追加して、jarに含めるようにしなければなりませんでした。 結果として得られたjarファイルを実行することができたことがわかったら。 Netbeansには、プラグインを自分自身で実行するために使用される独自のclojure.jarがあります。これは、プログラムが使用するのと同じclojure.jarである必要はありません。 Netbeansにはライブラリを追加するためのメニューがあります。 buildライブラリとrunライブラリの両方にclojure [-contrib] .jarを追加する必要があります。