如何在 Raspberry Pi 4 上的 Ubuntu 20.10 上运行 Moneydance 2021

如何在 Raspberry Pi 4 上的 Ubuntu 20.10 上运行 Moneydance 2021

个人理财计划金钱舞是基于 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.

我最终弄清楚了如何让它工作,但是这个主题上有很多过时或不相关的链接,所以我在这里发布我的答案,希望它能够帮助别人。

答案1

首先,安装 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。

相关内容