个人理财程序Moneydance是基于 Java 的,所以我希望能够在我的 Raspberry Pi 4 上的 Ubuntu 20.10 中运行 Moneydance——但它抱怨 Java 版本——MD 说:
No suitable Java Virtual Machine could be found on your system.
The version of the JVM must be at least 14.
Please define INSTALL4J_JAVA_HOME to point to a suitable JVM.
我最终想出了如何让它工作,但是关于这个主题有很多过时或不相关的链接,所以我在这里发布我的答案,希望它可以帮助其他人。
首先,安装Moneydance——方便,你可以.deb
从网站上下载一个权限。该软件包似乎包含自己的 Java,但它是为 x86 平台编译的,显然不适用于 Raspberry Pi。
因此,我们需要为 Moneydance 提供合适的 JVM。该default-jre
软件包是版本 11,因此您需要安装openjdk-14-jre
和设置INSTALL4J_JAVA_HOME=/usr/lib/jvm/java-14-openjdk-arm64
——您可以export
在 shell 中使用,也可以编辑/opt/Moneydance/Moneydance
脚本。
但是,它仍然不起作用:
Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.controls not found
所以你需要安装这个openjfx
包。但是出于某种原因,这将其文件放入/usr/share/java
并且 Moneydance 无法找到它们。原来你需要--module-path
在启动 MD 时使用开关来指定正确的目录——我编辑了 Moneydance 脚本,最后,当它运行时$INSTALL4J_JAVA_PREFIX exec "$app_java_home/bin/java" ...
我添加了
--module-path /usr/share/java
但是,这不工作:
Error occurred during initialization of boot layer
java.lang.module.FindException: Two versions of module org.apache.commons.lang3 found in /usr/share/java (commons-lang3.jar and commons-lang3-3.11.jar)
这是因为该目录具有混淆 Java 的符号链接;这是Debian 错误 933669。我的解决方案是在某处创建一个新目录——我使用过/opt/Moneydance/jfx
——并从那里符号链接到我们需要的 .jar 文件:
javafx-base.jar -> /usr/share/java/javafx-base.jar
javafx-controls.jar -> /usr/share/java/javafx-controls.jar
javafx-graphics.jar -> /usr/share/java/javafx-graphics.jar
javafx-swing.jar -> /usr/share/java/javafx-swing.jar
在 Moneydance 脚本的模块路径中指定该目录:
--module-path /opt/Moneydance/jfx # or whatever directory you used
...然后您就可以运行 Moneydance。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句