虽然我只是想安装 JabRef,但我很惊讶这个看似简单的任务却给我带来了这么多麻烦。
我使用的是 Windows 10,我想使用 JabRef(最新版本为 4.3.1)。我没有适用于 Java 8 的 JRE 或 JDK,但有 Oracle Java 12 JDK。 JabRef 需要 JDK 8,但如果没有登录,我无法从 Oracle 下载它。 (因为他们很爱管闲事,所以我拒绝注册下载。)
因此,我尝试使用 OpenJDK,但它没有附带 JavaFX,而 JabRef 需要 JavaFX。我还下载了 OpenJFX,但现在我很困惑如何将所有内容组合在一起。 OpenJFX 没有“安装”,因此 JabRef 仍然提示没有 JavaFX:
java.lang.NoClassDefFoundError: javafx/application/Application
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:81)
at com.exe4j.runtime.WinLauncher.main(WinLauncher.java:94)
at com.install4j.runtime.launcher.WinLauncher.main(WinLauncher.java:25)
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 15 more
所以,我的问题是:
- 如何定义 OpenJFX 的位置?或者
- 从哪里可以获得包含 JavaFX for Java 8 的 JDK 或 JRE?
最诚挚的问候!
最佳答案
好的,我找到了一个适合我的解决方案。我只是使用了包含 Java FX 的 Java 8 JDK:ZuluFX .
我卸载了 JabRef 并重新安装了它。当我重新安装 JRE 时,系统提示我说出 JRE 的位置。之后,它似乎工作正常。
关于java - 使用 OpenJDK 在 Windows 上运行 JabRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56008281/