Linux上JavaFX运行时JAR文件jfxrt.jar的位置是什么?

问题描述 投票:48回答:4

我正在尝试使用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)

我的理解是,尽管自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

我应该在哪里寻找它?

java linux eclipse javafx openjdk
4个回答
59
投票

Oracle Java 7中jfxrt.jar的位置是:

<JRE_HOME>/lib/jfxrt.jar

Oracle Java 8中jfxrt.jar的位置是:

<JRE_HOME>/lib/ext/jfxrt.jar

<JRE_HOME>将取决于您安装Oracle Java的位置,并且可能在Linux发行版和安装之间有所不同。

jfxrt.jar不在Linux OpenJDK 7中(这是你正在使用的)。


提供开源软件包,提供JavaFX 8 for Debian based systems,如Ubuntu。要安装此软件包,必须安装Debian OpenJDK 8软件包和Debian OpenJFX软件包。我没有运行Debian,所以我不确定Debian OpenJFX包安装jfxrt.jar的位置。


使用Oracle Java 8

对于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,则需要使用add it to your classpath and use appropriate JavaFX packaging tools来允许您的用户运行您的应用程序。某些工具(如e(fx)clipse和NetBeans JavaFX项目类型)将为您处理类路径问题和打包任务。


5
投票

当我使用apt install openjfx安装JavaFX时,我的Ubuntu 18.04就位于此处(正如上面@jewelsea所述)

/usr/share/java/openjfx/jre/lib/ext/jfxrt.jar
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/ext/jfxrt.jar

4
投票

在Ubuntu上使用OpenJDK,它安装在/usr/lib/jvm/default-java/jre/lib/ext/jfxrt.jar(技术上它是/usr/share/java/openjfx/jre/lib/ext/jfxrt.jar的符号链接,但最好使用default-java链接)


0
投票

jfxrt.jar在JDK 1.8(Windows)中的位置是:

C:\Program Files\Java\jdk1.8.0_05\jre\lib\ext\jfxrt.jar
© www.soinside.com 2019 - 2024. All rights reserved.