7

私が読んだところはどこでも、Java 7u7の時点で、JavaFX2はJREとJDKにバンドルされています。そのため、Eclipseを実行すると、「インポートjavafxを解決できない」と表示される理由がわかりません。

他にJDKまたはJREをインストールしていませんが7u9ですが、EclipseからJavaFX2を表示できないのはなぜですか?

どうもありがとう :)

4

2 に答える 2

8

残念ながら、jdk7u9の場合、新しいJavaプロジェクトを作成するときに、Eclipseはディレクトリからプロジェクトビルドパスライブラリにjfxrt.jarファイルを追加しません。jre\lib手動で行う必要があります。または、e(fx)clipseプラグインをEclipseにインストールすると、JavaFXの開発が容易になります:)

Eclipseは、JRE 7u9のデフォルトのブートクラスパス(含まれないjfxrt.jar)のデフォルト設定に従います。将来のJREバージョンはブートクラスパスに配置されるため、プロジェクトビルドパスライブラリにファイルをjfxrt.jar手動で追加する必要はありません。jfxrt.jarこのJRE機能を追跡できます。

于 2012-11-21T18:48:43.870 に答える
2

プロジェクトビルドパスに追加jfxrt.jarすると、Eclipseがそれを見つけて、Eclipse内からコードを開発および実行できるようになります。jfxrt.jarただし、ソフトウェアをデプロイすると、クラスパスにも配置しない限り、ソフトウェアを見つけることができなくなります。jdk/の場所を見つけて、jre内部で。の場所を検索する必要があるため、これは面倒になりますjfxrt.jar

私の理解では、長期的な計画は、内jfxrt.jarのフォルダーからlibフォルダーに移動するjreことlib/extです。これにより、クラスパスに何かを追加しなくても、デフォルトで見つかった場所に配置されます。残念ながら、Java8がリリースされる前にこれが発生する可能性はほとんどありません。

javafxpackager一方、最も簡単な解決策は、ツールではなく、バンドルされたツールを使用してjarファイルを作成することjarです。ベースのソリューションもありますがant、私はそれに精通していません。パッケージャはjarファイルを作成し、jfxrt.jarを検出して実行時にアプリのクラスパスに動的に追加するランチャークラスを挿入します。また、jreまたはインストールされjavafxているものが古すぎる場合は文句を言い、ユーザーに新しいバージョンをダウンロードするように促します。次に、コマンドラインで指定したクラスを介してアプリケーションを呼び出します。(通常、main()メソッドを持つクラス)。

これは、ネイティブjavafxアプリケーションとプレーンな古いSwingアプリケーションの両方で機能します。別のClassPathエントリなど、jarファイルのマニフェストに余分なものがある場合は、コマンドラインでそれを指定して、新しいjarファイルに含めることができます。

于 2013-02-12T03:02:30.250 に答える