当前位置: 首页 > 面试题库 >

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

笪成周
2023-03-14
问题内容

我正在尝试在Linux计算机上使用Eclipse
Kepler运行一些JavaFX代码,并安装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

我还应该在哪里寻找?


问题答案:

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中(这是您使用的)。

提供了一个开源软件包,该软件包为基于Debian的系统(例如Ubuntu)提供JavaFX8。要安装此软件包,必须同时安装Debian OpenJDK8软件包和Debian OpenJFX软件包。我没有运行Debian,所以我不确定Debian OpenJFX软件包在哪里安装jfxrt.jar。

使用Oracle Java8。

对于Oracle Java8,JavaFX既包含在JDK中,又位于默认的类路径中。这意味着JavaFX类将在编译期间以及用户使用您的应用程序时在运行时自动找到。因此,当前使用OracleJava 8是解决您问题的最佳解决方案。

适用于Java 8的OpenJDK可以包括JavaFX(因为Java8的JavaFX现在是开放源代码),但是对于他们是否选择在发行版中包含JavaFX8,它将取决于OpenJDK软件包的组装者。我希望他们能这样做,因为它应该有助于消除您在问题中遇到的困惑,并且它还提供了OpenJDK中的更多功能。

我的理解是,尽管自版本JDK 7u6起JavaFX已包含在标准JDK中

是的,但是只有Oracle JDK。

与Java 7捆绑在一起的JavaFX版本不是完全开源的,因此它不能包含在OpenJDK(您正在使用的版本)中。

如果需要使用Java 7而不是Java 8,则可以下载Oracle JDKforJava7并使用它。然后JavaFX将包含在Java7中。由于Oracle配置Java 7的方式,JavaFX将不在类路径中。如果您使用Java
7,则需要将其添加到类路径中,并使用适当的JavaFX打包工具来允许您的用户运行您的应用程序。一些工具,例如e(fx)clipse和NetBeansJavaFX项目类型,将为您解决类路径问题和打包任务。



 类似资料:
  • 在文档中,经常说“JavaFX运行时”在后台执行XY--但什么是“运行时”?如果我理解正确(请编辑),运行时由以下部分组成: null

  • 我在intelliJ中创建了一个Java /JavaFX应用程序。我创建了它作为一个Java的应用程序,后来为JavaFX导入了必要的部件。 我尝试了Izpack、Javapackager、Jpackager、Jpackage和创建胖jar中的各种安装程序/打包程序创建者。我什么都不行。 该应用程序在IntelliJ中运行良好。 为什么它不会在别处运行? 这是我的POM、代码和错误消息。 如果你能

  • 当我运行访问目录中其他文件的jar文件时,我得到以下: 线程“main”java.nio.file.nosuchfileException异常:src\filetobeaccessed.txt.lck在sun.nio.fs.windowsException.translateToioException(未知源)在sun.nio.fs.windowsException.reshrowasioExce

  • 我试图在Raspberry PI3B+上运行JavaFX程序(aiish_gui.jar),得到一个如下所示的错误: 正如在第一张图片中可以看到的,我的JavaFX项目包括外部库jar文件(Apache POI用于读写excel文件) 该项目是在IntelliJ IDE中完成的,并在此基础上创建了工件。它在Windows10和Ubuntu16.04中正常工作,但我在Raspbian上遇到了这些问题

  • 我有一个JavaFX应用程序,它调用一些JNI代码,使用预加载程序jar,并使用JDK1.7编译。现在,当我使用JRE7在另一台计算机上运行jar时,通过: 双击jar:它启动,但无法加载包含库的JNI代码,因此被卡住。 有人能告诉我这三种情况有什么不同吗?

  • 我知道以前也有人问过类似的问题。但是不知何故,我无法让我的工作成功。以下是我已经尝试过的步骤。 > 我创建了一个bat文件为并放入启动文件夹中。它适用于当前用户。这没有帮助,因为我想在所有用户登录PC后为他们运行此文件。 我以HKEY\U local\U machine的身份创建了关键价值 所以我有windows 10 64位计算机和需要放在这些计算机上的jar文件。任何用户登录后,都需要运行ja