12

このサイトや他の場所で、Oracle JDK7 がインストールされている場合、JDK が正しくインストールされている場合はjfxrt.jar へのクラスパスを指定する必要がないことを示すいくつかの質問を読みました。残念ながら、私のインストールは正しくないようですが、何が問題なのかわかりません。

Red Hat Enterprise Linux 6.2 サーバーに適切な RPM を使用し、外部 Jar に jfxrt.jar を追加すると、Eclipse で JavaFX アプリをビルドできます。しかし、コマンドラインからコンパイルして実行しようとすると、javac と java に -cp オプションを指定しない限り、JavaFX クラスが見つかりません。サーバーはもともとopenjdk-1.6を使用していましたが、代替手段を使用して、新しくインストールされたJDKを指すようにjavacとjavaを構成しました。この問題を除いて、それはうまく機能しているようです。

JavaFX Exporter を実行しようとしたときに、同じ問題に悩まされていることがわかりました。Eclipse で正常に動作するプロジェクトをエクスポートしようとしていました。しかし、実行しようとすると JavaFX クラスが見つかりませんでした。また、jfxrt.jar ファイルがどこにあるかをエクスポーターに伝える方法も考えていません。

参考までに、jfxrt.jar は私のシステムの /usr/java/jdk1.7.0_21/jre/lib/jfxtr.jar にあります。

4

2 に答える 2

14

Oracle JDK7 がインストールされている場合、JDK が正しくインストールされていれば、jfxrt.jar にクラスパスを指定する必要はありません。

そうではありません。

Java 7 (u21) で JavaFX アプリケーションをコンパイルして実行する必要があり、JavaFX パッケージ化ツールを使用していない場合は、jfxrt.jar をクラスパスに追加する必要があります。

コマンドラインから JavaFX 2 アプリケーションをコンパイル (javac を使用) および実行 (java を使用) するための JavaFX クラスパスの設定のサンプルについては、JavaFX 2.0 を使用してコードをコンパイルする (コマンドラインを使用) を参照してください。

一部の IDE または IDE 拡張機能はこれを認識しており、自動的に jfxrt.jar をクラスパスに追加します (e(fx)clipse プラグインまたは NetBeans JavaFX プロジェクト タイプなど)。

JavaFX Maven PluginJavaFX Gradle Pluginなどの一部のサードパーティ ツールも JavaFX アプリケーションをパッケージ化するため、jfxrt.jar をクラスパスに追加する必要はありません。

Eclipse 開発では、e(fx)clipse プラグインの使用が推奨されます。これは、クラスパスの問題を処理するためです (また、JavaFX 開発者に他の便利な機能を提供します)。

Java 8 の場合、 jfxrt.jar はデフォルトの classpathにあるため、その Java バージョンの javac.exe や java.exe などのツールで JavaFX を使用するようにクラスパスを明示的に設定する必要はありません。

于 2013-05-31T07:39:15.907 に答える