1

コンテクスト

clojureでJavaFxを使用したい。

私はhttp://nailthatbug.ne​​t /2011/06/clojure-javafx-2-0-simple-app/を知っています

質問:

代わりにleinでnative-depsを使用してJavaFXをClojureで動作させる方法はありますか?

ありがとう!

4

4 に答える 4

3

Githubで単純なClojure と JavaFX の例を作成しました。Ubuntu でのテストdeploy:deploy-fileターゲットを使用して、ローカルの Maven リポジトリに JavaFX ランタイムをインストールする必要がありました(install:install-file は機能しませんでした)。

mvn deploy:deploy-file -DgroupId=local.oracle -DartifactId=javafxrt -Dversion=2.2.0 -Dpackaging=jar -Dfile=/usr/lib/jvm/java-7-oracle-amd64/jre/lib/jfxrt.jar -Durl=file:/home/raju/.m2/repository

次の引数が正しく設定されていることを確認してください。

  • -Dfile={jre/lib フォルダー内の jfxrt.jar へのフルパス}
  • -Durl=file:{Maven リポジトリへのフル パス、例: $HOME/m2.repository}

project.clj では、JAR をリポジトリにインストールするときに、-DgroupId および -DartifactId の値に基づいて依存関係を追加しました。これらの値を変更する場合は、それに応じて依存関係を変更してください。

[local.oracle/javafxrt "2.2.0"]

Java は問題なくバイナリ ライブラリをロードできました。Java がバイナリ ライブラリの読み込みに関する問題を報告した場合、たとえば

原因: java.lang.UnsatisfiedLinkError: ライブラリを読み込めません: /usr/lib/jvm/javafx-sdk/rt/lib/amd64/libglass.so

SOに関する次の2つの質問を確認してください。

LD_LIBRARY_PATH とその使用方法
java.lang.UnsatisfiedLinkError no *****.dll in java.library.path

于 2012-09-25T10:06:05.717 に答える
1

JavaFx にはネイティブの依存関係があるため、オプションは制限されています。]

  • これらの依存関係をプロジェクト (それらを含む) に同梱し、
  • 依存できるパッケージを作成する (それらを提供する)、
  • または、パッケージをユーザーが他の方法でインストールする必要があります。

robert.hookリンク先のチュートリアルは、実際のネイティブ依存関係を提供するためにエンドユーザーのパッケージマネージャーを使用して依存することにより、パッケージ/プログラムのユーザーがJavaFxを独自にインストールするケースをカバーしているためです。パッケージ/プログラムに依存関係を含める方法について説明します。

native-depsを使用して、ネイティブの依存関係をパッケージに同梱できます。すべての .so、.dll、.etc ファイルを適切なディレクトリに追加するだけです。プロジェクトの github ページは、私が構造を説明するよりも優れた仕事をしていると思います。

于 2012-06-20T01:12:05.633 に答える
1

質問のリンクが壊れているため、例を見ることができませんが、Java 8 では、JavaFX は標準の JDK/JRE の一部になりました。したがって、ネイティブの依存関係の問題は、現時点では無関係であると予想しています。

于 2013-02-21T05:45:15.393 に答える
0

これが他の人のために働くかどうかはわかりませんが、これは(これまでのところ)私のために働いたようです:

mvn install:install-file -DgroupId = javafx -DartifactId = javafx -Dversion = 2.1.0 -Dpackaging = jar -Dfile = / Library / Java / JavaVirtualMachines / 1.7.0.jdk / Contents / Home / jre / lib/jfxrt。 jar

なぜこれが機能するのかわかりませんが、jfxrt.jarに必要なファイルがあると思います。次に、この後、project.cljで次のようにKindleします。

[javafx "2.1.0"]

:dependencies(:native-depsではない)セクション。

[これを書いたので、なぜこれがうまくいくように見えるのか本当にわかりません。]

于 2012-06-20T01:53:43.197 に答える