2012-11-21 14 views
7

Java 7X7でJavaFX2がJREとJDKにバンドルされています。だから私はEclipseを実行すると「インポートjavafxは解決できません」と言っている理由について混乱しています。Java 7u9とEclipse(Juno)がインストールされていますが、EclipseにJavaFX2が表示されません。

他のJDKまたはJREはインストールされていませんが、7u9はインストールされていません。なぜEclipseからJavaFX2を見ることができないのですか?私たちは、新しいJavaプロジェクトを作成するときに

多くの感謝:)残念ながら

+0

あなたのプロジェクト構築パスにjfxrt.jarファイルがありますか? – invariant

+0

あなたはEclipseのデフォルトとプロジェクトのjdk設定をチェックして、新しいJava 7を使用していますか? – Quinma

+0

それは、不変のトリックでした! Java 7に統合されているので、JARが "C:¥Program Files¥Java¥jdk1.7.0_09¥jre¥lib"に保存されているので、自動的にJava 7に統合されていると仮定しました。 ありがとう:D –

答えて

8

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

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

+0

@ jewelseaあなたの編集は問題の根本原因を明らかにしてくれて、ありがとう:) – invariant

+3

e(fx)クリップをインストールしようとしましたが、同じエラーが表示されました。 – trusktr

+0

e(fx)clipseをインストールした後、新しいjavaFXプロジェクトまたはjavaプロジェクトを作成していますか? – invariant

2

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

私が理解から、長期的な計画はlib/extフォルダにjrelibフォルダからjfxrt.jarを移動することです。これは、クラスパスに物を追加する必要なく、デフォルトで見つけられたどこかに置きます。残念ながら、これはJava 8がリリースされる前に起こる可能性は低いです!

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

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

+0

素晴らしい!私たちは最初の問題を解決してからずっと待っていましたが、それを効果的にパッケージ化する方法の問題はまだありました。あなたはいい人です、そして私のチームが良いバンドを上げている可能性が最も高いです! :)乾杯! –

関連する問題