Mar*_*vic 50 java eclipse linux openjdk javafx
我正在尝试使用Eclipse Kepler运行一些JavaFX代码,并在Linux机器上安装了e(fx)clipse插件,使用:
java version "1.7.0_21"
OpenJDK Runtime Environment (IcedTea 2.3.9) (7u21-2.3.9-5)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)
我的理解是,尽管自JDK 7u6版本以来JavaFX已包含在标准JDK中,但JavaFX运行时JAR文件jfxrt.jar暂时不在Java运行时路径中,直到JavaFX与其他Java基础结构之间的进一步测试为止.已经完成.因此,在创建新的Java项目时,必须手动将其添加到项目构建路径库中.
我一直在以下两个目录中寻找那个jar而没有成功:
/usr/lib/jvm/java-7-openjdk-common/jre/lib/
/usr/lib/jvm/java-7-openjdk-amd64/lib
Run Code Online (Sandbox Code Playgroud)
我应该在哪里寻找它?
jew*_*sea 61
Oracle Java 7中jfxrt.jar的位置是:
<JRE_HOME>/lib/jfxrt.jar
Run Code Online (Sandbox Code Playgroud)
Oracle Java 8中jfxrt.jar的位置是:
<JRE_HOME>/lib/ext/jfxrt.jar
Run Code Online (Sandbox Code Playgroud)
这<JRE_HOME>
将取决于您安装Oracle Java的位置,并且可能在Linux发行版和安装之间有所不同.
jfxrt.jar不在Linux OpenJDK 7中(这是你正在使用的).
可以使用开源软件包,为基于Debian的系统(如Ubuntu)提供JavaFX 8.要安装此软件包,必须安装Debian OpenJDK 8软件包和Debian OpenJFX软件包.我没有运行Debian,所以我不确定Debian OpenJFX包安装jfxrt.jar的位置.
对于Oracle Java 8,JavaFX都包含在JDK中,并且位于默认的类路径中.这意味着编译期间编译器将自动找到JavaFX类,并在用户使用应用程序时由运行时自动找到JavaFX类.因此,使用Oracle Java 8是目前解决您问题的最佳方案.
OpenJDK for Java 8可能包括JavaFX(因为JavaFX for Java 8现在是开源的),但是它将依赖于OpenJDK包汇编程序,因为它们是否选择将JavaFX 8与其分发包括在一起.我希望他们这样做,因为它应该有助于消除您在问题中遇到的困惑,并且它还在OpenJDK中提供了更多功能.
我的理解是,虽然自JDK 7u6版本以来JavaFX已包含在标准JDK中
是的,但只有Oracle JDK.
与Java 7捆绑在一起的JavaFX版本并非完全开源,因此它无法包含在OpenJDK中(这就是您正在使用的).
在您需要使用Java 7而不是Java 8时,您可以下载Oracle JDK for Java 7并使用它.然后JavaFX将包含在Java 7中.由于Oracle配置Java 7的方式,JavaFX将不在类路径上.如果使用Java 7,则需要将其添加到类路径中,并使用适当的JavaFX打包工具来允许用户运行应用程序.某些工具(如e(fx)clipse和NetBeans JavaFX项目类型)将为您处理类路径问题和打包任务.
在带有 OpenJDK 的 Ubuntu 上,它安装在/usr/lib/jvm/default-java/jre/lib/ext/jfxrt.jar
(从技术上讲它是到 的符号链接/usr/share/java/openjfx/jre/lib/ext/jfxrt.jar
,但使用该default-java
链接可能更好)
当我使用JavaFX安装JavaFX时,我的位置位于Ubuntu 18.04上apt install openjfx
(上面@jewelsea已经指出)
/usr/share/java/openjfx/jre/lib/ext/jfxrt.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/jfxrt.jar
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
84894 次 |
最近记录: |