IntelliJ IdeaIDEでシンボルjavafx.applicationを解決できません


81

IntelliJ Idea IDEでJavaFXアプリケーションを作成しようとしましたが、次のようなコンパイルエラーが発生しました。

java:パッケージjavafx.applicationが存在しません。

プロジェクトSDKとプロジェクト言語レベルをJava8に変更しましたが、プロジェクトをリロードしましたが、役に立ちませんでした。次に、設定でJavaFXプラグインが有効になっているかどうかを確認しました。

GoogleとStackOverflowで検索しても、何が問題なのかについてのアイデアは得られませんでした。よろしくお願いします。

PS私はarchlinuxOSでjava8.1.0_25とともにIntelliJIdea14.0を使用しています。


jdkまたはjreに対してコンパイルしていますか?そのjdkを確認してください。
Stav Saad 2014年

回答:


97

ここに示されているように、JavaFXはopenjdkに含まれなくなりました。

だから、あなたが<Java SDK root>/jre/lib/ext/jfxrt.jarあなたのクラスパスの下にあるProject Structure -> SDKs -> 1.x -> Classpathかどうかを確認してください?そうでない場合は、それが理由である可能性があります。それを追加してみて、問題が解決するかどうかを確認してください(Ubuntuなど)sudo apt-get install openjfx。次にopenjfxパッケージをインストールします。


このファイルはクラスパスとSDKルートフォルダーにありません。AURからインストールしたJavaにjfxrt.jarファイルがない理由がわかりません。
rob111 2014年

私のアドバイスは、Oracleにアクセスして、OSに適切なディストリビューションを入手することです。
ライアンJ

2
jfxrt.jarファイルを適切なディレクトリに追加してSDKに追加しました。IDEがjavafxを認識しましたが、ランタイム例外グラフィックスデバイスの初期化に失敗しました:es2、sw QuantumRendererの初期化エラー:適切なパイプラインが見つかりませんjava.lang.RuntimeException:java.lang.RuntimeException:QuantumRendererの初期化エラー:適切なパイプラインが見つかりませんでした今しなければならない?
rob111 2014年

残念ながら、システム構成に問題があるようです... Linuxの特定のディストリビューションがどの程度カスタムであるかわからないため、それを修正するために何ができるかわかりません。
ライアンJ

24

これはあなたの完璧な解決策になるはずです。試して楽しんでください。一部のコマンドが正しく機能しない場合、つまりエラーが発生した場合は、自分で解決してみてください。私はあなたにあなたが必要とする主なものを与えました。アプリケーションが別の場所にある場合、またはシステムアーキテクチャが異なる場合は、自分で解決してください。それはとても簡単です。私の与えられた解決策に従ってください。

ステップ0:

sudo apt-get install openjdk-8-jre

ステップ1

sudo apt-get install openjfx

ステップ2:

sudo cp /usr/share/java/openjfx/jre/lib/ext/* /usr/lib/jvm/java-1.8.0-openjdk-amd64/lib

ステップ3:

sudo cp /usr/share/java/openjfx/lib/* /usr/lib/jvm/java-1.8.0-openjdk-amd64/lib

ステップ4:

sudo chmod 777 -R /usr/lib/jvm/java-1.8.0-openjdk-amd64

ここで、新しいプロジェクトを開くか、プロジェクトを再構築します。幸運を。


1
OPはAPTを持たない
ArchLinux

4
sudo chmod 777 -R /usr/lib/jvm/java-1.8.0-openjdk-amd64悪い考えです!しないでください!
カールリヒター

カールリヒター。あなたは開発者です。開発目的でこれを行うことができます。777の許可を与えることは、ビジネスおよび一般ユーザーにとって悪いことです。あなたは開発者なので、問題はないはずです。あなたはあなたのOSについてよく知っています。>>また、必要に応じて、この問題についてさらに調査することでバッターを行うことができます。ありがとうございました。
HimelRana18年

5
ルートキットやウイルスがファイルを自由に書き換えられるようにシステムのアクセス許可を変更したとき、OSについて知ることは皮肉なことです。あなたが何を知っていると思うかは問題ではありません。システムファイルに対してchmod777を実行しないでください。このフォルダの適切な権限は644ls -lhaです。簡単にそれを示します。
ルーター

16

IntelliJに付属しているものを使用できます:<intellij>/jre64/lib/ext/jfxrt.jar


13

公式のArchLinuxリポジトリからjava-openjfxパッケージをダウンロードする必要があります。(また、openjdk8-openjdkパッケージがあることを確認してください)。その後、Intellijでプロジェクトを開き、Project-Structure-> SDKs-> 1.8-> Classpathに移動して、古いJDKを削除し、jfxrt.jarが含まれる新しいJDKのディレクトリをクリックしてみます。


5
これは、Intellijに現在検出されていないパッケージを検出させるために彼が何をする必要があるかを正確に伝えます。それはどうして彼の質問に答えないのですか?
パターカイル2016年

2

JDKよりもプロジェクトの言語レベルが低い可能性があります。

「プロジェクト構造/プロジェクト/プロジェクト->言語レベル」がJDKよりも低いかどうかを確認します。JDK 9でも同じ問題が発生し、言語レベルはデフォルトで6に設定されていました。

プロジェクトの言語レベルを9に設定すると、その後はすべて正常に機能しました。

同じ問題が発生する可能性があります。


2

問題を解決する別の方法:左側のプロジェクト構造のプロジェクトフォルダでマウスの左ボタンをクリックし、アクションのリストで[モジュール設定を開く]をクリックします。新しいウィンドウで、メニューの下にあるSDKをクリックします。 title "Platform settngs"次に、jfxrtプラグインパスが見つかったかどうかを「クラスパス」リストで確認します。見つからない場合は、右側の+記号をクリックして、jfxrtプラグインのレパートリー(C:\ Program Files \ Java \デスクトップ上のjdk1.8.0 \ jre \ lib \ ext \ jfxrt.jar)


2

サンプルJavaアプリケーション:

別の質問からの回答は関連していて、質問の問題も解決しているように見えるので、ここでクロスポストしています

これは、OpenJDK 12、JavaFX 12、Gradle5.4を使用したプロジェクトの例です。

  • 「HelloWorld!」というタイトルのJavaFXウィンドウを開きます。
  • 動作する実行可能な配布zipファイルを作成できる(Windowsをテストする)
  • 追加の設定なしでIntelliJで開いて実行することができます
  • コマンドラインから実行できる

誰かがGithubプロジェクトがお役に立てば幸いです。

Scalaケースの手順:

さらに、以下はGradle Scalaプラグインで機能する手順ですが、Javaでは機能しないようです。他の誰かがScala、Gradle、JavaFXを使用している場合に備えて、これはここに残しておきます。

1)質問で述べたように、JavaFXGradleプラグインを設定する必要があります。 Open JavaFXには、これに関する詳細なドキュメントがあります

2)さらに、プラットフォーム用のJavaFXSDKをどこかで解凍する必要があります。注:JavaFX 12がある最新リリースセクションまでスクロールダウンしてください(何らかの理由でLTS 11が最初です)。

3)次に、IntelliJで、に移動しFile -> Project Structure -> Libraries、➕ボタンを押しlibて、解凍したJavaFXSDKからフォルダーを追加します。

スクリーンショットを使用したより長い手順については、IntelliJ用の優れたOpen JavaFXドキュメントを確認してください。ディープリンクを機能させることができないため、ドキュメントナビゲーションから選択JavaFX and IntelliJしてModular from IDEから選択してください。次に、ステップまで下にスクロールし3. Create a libraryます。問題が発生した場合は、他の手順も確認することを検討してください。

これが元の質問とまったく同じ状況であるかどうかを判断するのは難しいですが、私がここに着陸したのと同じように見えたので、他の人を助けるためにここに私の経験を追加します。


2

IntelliJ Ideaでは、

次のものが正しく構成されていることを確認してください。

ステップ1:

ファイル->設定->プラグイン-> javafxを検索し、有効になっていることを確認します。

ステップ2:プロジェクト構造(Ctrl + Shift + Alt + s)

プラットフォーム設定-> SDK-> 1.8- >クラスパスに「jre \ lib \ ext \ jfxrt.jar」が含まれていることを確認します

ステップ3:

プロジェクト設定->プロジェクト->プロジェクトSDK-を選択する必要があります1.8

プロジェクト設定->プロジェクト->プロジェクト言語レベル-8として構成

Ubuntu:SDKにjfxrt.jarが見つからない場合は、sudo apt-get installopenjfxをインストールします。


0

私は同じ問題を抱えていました、私の場合、私はそれを解決しました

1)[ファイル]-> [プロジェクト構造] ----> [グローバルライブラリ]に移動します2)jdk1.8.0_241 \ libにデフォルトで含まれているjfxrt.jarを探します(インストール後)3)左上の[+]をクリックして追加します新しいグローバルライブラリと私は私のjdk1.8.0_241のパスを指定しました例:(C:\ Program Files \ Java \ jdk1.8.0_241)。

これがお役に立てば幸いです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.