来 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,其中修补了自定义加载程序路径。大致而言,使其正常工作的步骤是......
从 RHEL6 中解压以下软件包:
- glib2
- libffi
- glibc
- glibc-common
- zlib
- gtk2
- 潘戈
- 开罗
- 像素人
将这些包中的所有共享库放入 RHEL5 系统上的一个目录中。我们将其命名为
/YOUR-ALIEN-RHEL6-LIBS-PATH
。将 JRE 的另一个副本解压到
/YOUR-ALIEN-JVM-PATH
。使用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
设置
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/