Conflicting Versions Warning (JavaFX,JDK,JRE)
我实际上是在尝试学习 JavaFX 教程,当我运行主应用程序以进行预览时,它会在控制台上显示此警告:
1 2 3 4 | Feb 24, 2017 12:55:20 PM javafx.fxml.FXMLLoader$ValueElement processValue WARNING: Loading FXML document with JavaFX API of version 8.0.111 by JavaFX runtime of version 8.0.60 Feb 24, 2017 12:55:20 PM javafx.fxml.FXMLLoader$ValueElement processValue WARNING: Loading FXML document with JavaFX API of version 8.0.111 by JavaFX runtime of version 8.0.60 |
我搜索了一下,似乎我有不同版本的 JDK/JRE 或类似的东西,这是我在这个主题上找到的这段代码的输出:
1 2 |
输出:
java版本:1.8.0_121
javafx.version: 8.0.60
来自 java -version 命令的输出:
1 2 3 | openjdk version"1.8.0_121" OpenJDK Runtime Environment (build 1.8.0_121-8u121-b13-0ubuntu1.16.04.2-b13) OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode) |
我去了这个位置:/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
并找到 2 个文件夹 "java-1.8.0-openjdk-amd64" 和 "java-8-openjdk-amd64" (都具有相同的大小)所以也许这些是 2 个版本冲突?我应该怎么做才能解决这个问题?
"alternative" 命令对我不起作用,它向我显示此错误:
1 2 3 | No command 'alternatives' found, did you mean: Command 'galternatives' from package 'galternatives' (universe) alternatives: command not found |
我下载了替代应用程序,但是当我运行它时,我在任何与"java"相关的替代方案中都找不到多个选择...
编辑:
经过一番搜索后,我发现了这个命令(sudo update-alternatives --config java)并使用了它,这是它的输出:
1 2 | There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java Nothing to configure. |
所以我想可以安全地假设这不是 java 替代安装的问题...
解决方案 :
我实际上是通过卸载 openjdk-8 并安装 oracle Java-8 来实现的
1) 使用以下命令在基于 ubuntu 的发行版上卸载 openjdk-8:
2) 使用此命令安装 Oracle Java-8:
1 | sudo apt-get install oracle-java8-set-default |
或遵循本教程 (http://www.webupd8.org/2014/03/how-to-install-oracle-java-8-in-debian.html)
最后,这里的这个问题是关于JavaFx运行时文件和本地系统上安装的JRE/JDK不匹配的问题。
尤其是在 Linux 中,这两个通常通过"不同"路径出现。 OpenJDK 通过分发包管理系统安装;并且不使用 JavaFx 库/工具。
为了克服这些潜在的问题,"最简单"的方法是使用 Oracle 的"原始"JDK。这甚至可以"尝试",而无需进行更改系统的完整安装:只需从 Oracle 下载 JDK 作为存档并在本地解压缩即可。