javafx - 在 Redhat 5 上运行 JavaFX 应用程序

标签 javafx javafx-8

来 self 的previous question ,我知道RedHat 5.8不支持JavaFX,这意味着即使我在Linux上安装了Java 8(jdk1.8.0_05),在win7中创建的JAR文件也无法通过java -jar helloworld执行。 jar 。这是否意味着无法在这台机器上运行 JavaFX jar?

最佳答案

在 RHEL5 上运行 JavaFX 应用程序的问题是该操作系统附带的 glib 版本不够新。那么,诀窍就是向 JRE 提供该库的更新版本以及依赖于该库的所有其他库。下一个障碍是 RHEL5 共享库加载器不会加载这些库。您必须使用兼容的加载程序。但是 JVM 在可执行文件中硬编码了加载器的路径!因此,您需要一个单独的 JVM,其中修补了自定义加载程序路径。大致而言,使其正常工作的步骤是......

  1. 从 RHEL6 中解压以下软件包:

    • glib2
    • libffi
    • glibc
    • glibc-common
    • zlib
    • gtk2
    • 潘戈
    • 开罗
    • 像素人
  2. 将这些包中的所有共享库放入 RHEL5 系统上的一个目录中。我们将其命名为 /YOUR-ALIEN-RHEL6-LIBS-PATH

  3. 将 JRE 的另一个副本解压到 /YOUR-ALIEN-JVM-PATH

  4. 使用patchelf将 JVM 可执行文件指向新的加载程序。

    • ./usr/bin/patchelf --set-interpreter/YOUR-ALIEN-RHEL6-LIBS-PATH/lib/amd64/ld-linux-x86-64.so.2/YOUR-ALIEN-JVM -PATH/jre1.8.0_25/bin/java
  5. 设置LD_LIBRARY_PATH=/YOUR-ALIEN-RHEL6-LIBS-PATH/lib/amd64:/YOUR-ALIEN-RHEL6-LIBS-PATH/lib/amd64/jli后运行应用程序

虽然不太漂亮,但我已经使用这种方法在 RHEL5 上成功运行了 JavaFX 应用程序。话虽如此,如果远程可行的话,我强烈建议升级您的操作系统。

关于javafx - 在 Redhat 5 上运行 JavaFX 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24438472/

相关文章:

JavaFX 自定义 Canvas 节点?

ubuntu - 为 JavaFX 应用程序设置的图标在 Windows 中可见,但在 Ubuntu 中不可见

java - 如何在 JavaFX 选项卡中显示 JFreeChart?

java - Java中的复合组件

image - 如何在 JavaFX 的 TextArea 中将内嵌图像添加到字符串的末尾?

Javafx mysql,如何一一获取行

java - 如何用一条线连接两个节点

java - 如何将java lang中的对象添加到fxml文件中

java - 如何在 JavaFX 中重新运行程序

转换后的 Maven 项目中文件的 JavaFx InvocationTargetException