1 votes

Comment exécuter Moneydance 2021 sur Ubuntu 20.10 sur un Raspberry Pi 4

Le programme de finances personnelles Moneydance est basé sur Java, donc je m'attendrais à pouvoir exécuter Moneydance sur mon Raspberry Pi 4 avec Ubuntu 20.10 - mais il se plaint de la version Java - MD dit :

Aucune machine virtuelle Java appropriée n'a été trouvée sur votre système.
La version de la JVM doit être au moins 14.
Veuillez définir INSTALL4J_JAVA_HOME pour pointer vers une JVM appropriée.

J'ai finalement trouvé comment le faire fonctionner, mais il y a beaucoup de liens obsolètes ou non pertinents sur ce sujet, alors je poste ma réponse ici dans l'espoir que cela aide quelqu'un d'autre.

2voto

robbyt Points 1622

Tout d'abord, installez Moneydance - vous pouvez facilement télécharger un .deb directement depuis le site web. Le package semble inclure sa propre version de Java, mais il est compilé pour les plateformes x86 et évidemment ne fonctionne pas sur le Raspberry Pi.

Nous devons donc fournir le bon JVM pour Moneydance. Le package default-jre est en version 11, donc vous devrez installer openjdk-14-jre et définir INSTALL4J_JAVA_HOME=/usr/lib/jvm/java-14-openjdk-arm64 - vous pouvez utiliser export dans votre shell, ou éditer le script /opt/Moneydance/Moneydance.

Mais malgré cela, cela ne fonctionne toujours pas :

Erreur survenue lors de l'initialisation de la couche de démarrage
java.lang.module.FindException: Module javafx.controls introuvable

Vous devez donc installer le package openjfx. Mais pour une raison quelconque, cela place ses fichiers dans /usr/share/java et Moneydance ne les trouve pas. Il s'avère que vous devez utiliser l'option --module-path lors du démarrage de MD pour spécifier le bon répertoire - j'ai modifié le script Moneydance, et à la toute fin, lorsqu'il exécute $INSTALL4J_JAVA_PREFIX exec "$app_java_home/bin/java" ... j'ai ajouté

--module-path /usr/share/java

Mais même cela ne fonctionne pas :

Erreur survenue lors de l'initialisation de la couche de démarrage
java.lang.module.FindException: Deux versions du module org.apache.commons.lang3 trouvées dans /usr/share/java (commons-lang3.jar et commons-lang3-3.11.jar)

Cela est dû au fait que ce répertoire contient des liens symboliques qui perturbent Java ; il s'agit du bug Debian 933669. Ma solution a été de créer un nouveau répertoire quelque part - j'ai utilisé /opt/Moneydance/jfx - et d'établir un lien symbolique à partir de là vers les fichiers .jar dont nous avons besoin :

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

Spécifiez ce répertoire dans votre chemin de modules dans le script Moneydance :

--module-path /opt/Moneydance/jfx  # ou le répertoire que vous avez utilisé

...et alors vous pourrez exécuter Moneydance.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X