私は最近、JavaFXアプリケーションの起動時に次の警告に気付き始めました。
警告:バージョン8.0.60のJavaFXランタイムによるバージョン8.0.65のJavaFX APIを使用したFXMLドキュメントの読み込み
問題のFXMLはGluon Scene Builder 8.1.0によって作成され、バンドルされたJavaバージョン1.8.0_65で実行されます。アプリケーションは、私のOS Javaバージョン1.8.0_72で起動されます。
FXMLのルートノードには属性があります
xmlns="http://javafx.com/javafx/8.0.65"
しかし、私は1.8.0_72> 1.8.0_65だと思ったのに、なぜこのメッセージが表示されるのですか?心配する必要がありますか?また、jreにJavaFX APIのバージョンを尋ねる方法はありますか(明らかに、Javaバージョン)とは異なります)。
編集:
James_Dが提案したコードを実行すると、次の結果が得られます。
Javaバージョン:1.8.0_72-internal
javafx.version:8.0.60
だから、JDKのJavaFXバージョンが間違っているように見えますか?または、古いjfxrt.jarがありますか?それについて見ていきます。
フォームを使用する場合:
xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml"
バージョン管理は無視されます。別のバージョンとの互換性の問題がある場合にのみ必要になります。
JDK
バージョンは1.8.0_60
およびJRE
バージョンは1.8.0_65
。
したがって、両方に同じバージョンを使用する必要があります。
現在のJDK
とJRE
のバージョンは、それぞれcommand Promptで確認できます。
Java -version
javac -version
または、次のJavaコードを使用してシステムプロパティを確認できます。
System.out.println(System.getProperties());
私にもその問題があります。 * .fxmlファイルの行を変更するだけで管理しました。
javafx/8.0.171-> javafx/8.0.141
以前は次のようでしたが、fxmlファイルの最初の行です。
<AnchorPane prefHeight="300.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.application.Word.view.LoginController">
それから私はそれを変更しました:
<AnchorPane prefHeight="300.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.application.Word.view.LoginController">
そして、それは問題なく動作します。ただし、異なるjdk世代を使用する場合は異なる可能性があることに注意してください。
同じ問題がありました。 Dunno what IDE皆さんが実行していますが、Eclipseで修正しました。
内部project ExplorerJRE System Libraryの右側に表示されていました[J2SE-1.5]。 JRE System Libraryを右クリックし、Propertiesを入力しました。 実行環境からワークスペースのデフォルト環境に切り替えました。
workspace default environement括弧内にある場合、最新のjdkバージョンは表示されません。 (jdk1.8.0_192)これを変更するには、Installed JREsボタンを選択し、チェック済みのJREを切り替えます。
Jdkがリストにない場合は、[〜#〜] add [〜#〜]ボタンで追加し、JDKディレクトリを選択します。 C:\ Program Files\Java\jdk1.8.0_192、ホームディレクトリとして。
何らかの理由で、デフォルトの環境を変更したくない場合は、Workspace default JREではなくAlternate JREを選択してください。次に、ドロップダウンメニューから正しいSDKを選択します。
PS。はい、fxmlファイル内のxmlnsオプションでバージョンを変更できますが、Scene Builder内でfxmlを変更するたびにエントリを更新する必要があります。
私は同じ問題を抱えていましたが、この手順を踏んで解決しました
Intellij IDEA goto File-> Project Structure-> SDKsを使用しており、(-)記号をクリックして他のすべてを削除する場合前に持っているJDKから(+)記号をクリックして、新しいJDKをプロジェクトに追加しますC:\ Program Files(x86)\ Java\jdk1.8.0_172 =。
LinuxでもIntellij IDEAを使用すると同じ問題が発生しました。 最新のOracle JDKをインストールし、IDEAの「Project Sturucture」設定メニューにパスを指定することで解決しました。
ファイル/プロジェクト構成/プラットフォーム設定/ SDK