个人理财程序金钱之舞是基于Java的,所以我希望能够在我的Raspberry 4上运行Ubuntu20.10中的Money连舞--但是它抱怨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.我最终想出了如何让它发挥作用,但是在这个话题上有很多过时的或者不相关的链接,所以我在这里发布我的答案,希望它能帮助到其他人。
发布于 2020-12-28 18:19:14
首先,安装“金钱之舞”--方便地,你可以从网站上下载一个.deb。这个包似乎包含了自己的Java,但是它是为x86平台编译的,显然不能在Raspberry上工作。
因此,我们应该为Moneydance提供正确的JVM。default-jre包是version 11,所以您需要安装openjdk-14-jre并设置INSTALL4J_JAVA_HOME=/usr/lib/jvm/java-14-openjdk-arm64 --您可以在shell中使用export,也可以编辑/opt/Moneydance/Moneydance脚本。
但是,它仍然不起作用:
Error occurred during initialization of boot layer
java.lang.module.FindException: Module javafx.controls not found因此,您需要安装openjfx包。但出于某种原因,这会把它的文件放在/usr/share/java中,而Money同期却找不到它们。结果是,在启动MD时,需要使用--module-path开关来指定正确的目录--我编辑了Money相比之下脚本,最后,当它运行$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在Money同期脚本中指定模块路径中的目录:
--module-path /opt/Moneydance/jfx # or whatever directory you used然后你就可以运行“金钱之舞”了。
https://askubuntu.com/questions/1303451
复制相似问题