Hopefully this helps someone using Moneydance Personal Finance with the recent Java 21 changes.
The following posts did not help to fully resolve my issues with Moneydance:
Moneydance adds its own dependency:
$ sudo pacman -Sy jdk-openjdk resolving dependencies... looking for conflicting packages... :: jdk-openjdk and jre-openjdk are in conflict. Remove jre-openjdk? [y/N] y :: jdk-openjdk and jre-openjdk-headless are in conflict. Remove jre-openjdk-headless? [y/N] y error: failed to prepare transaction (could not satisfy dependencies) :: removing jre-openjdk breaks dependency 'jre-openjdk' required by moneydance
Tried to remove them for now…
$ sudo pacman -R jre-openjdk-headless jre-openjdk moneydance checking dependencies... error: failed to prepare transaction (could not satisfy dependencies) :: removing jre-openjdk breaks dependency 'jre21-openjdk=21.u35-3' required by jdk-openjdk
Add that one to the list:
$ sudo pacman -R jre-openjdk-headless jre-openjdk moneydance jdk-openjdk ... Packages (4) jdk-openjdk-21.u35-3 jre-openjdk-21.u35-3 jre-openjdk-headless-21.u35-3 moneydance-2023.5005-1 :: Do you want to remove these packages? [Y/n] Y
Process the full system update… however you choose, I did:
$ pamac upgrade
Add back Moneydance:
$ pamac install moneydance Warning: moneydance is only available from AUR Preparing... Cloning moneydance build files... Generating moneydance information... Checking moneydance dependencies... Resolving dependencies... Checking inter-conflicts... To install (1): jre-openjdk 21.u35-8 (Required By: moneydance) extra 31.8 MB To build (1): moneydance 2023.1.5006-1 AUR Total download size: 31.8 MB Total installed size: 160.4 MB Edit build files : [e] Apply transaction ? [e/y/N] y
Try to run Moneydance - nothing happens, try it from CLI:
$ moneydance Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=gasp -Dawt.useSystemAAFontSettings=on Error: LinkageError occurred while loading main class Moneydance java.lang.UnsupportedClassVersionError: Moneydance has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
Probably defaulting to an older version of Java still…
$ archlinux-java status Available Java environments: java-11-openjdk (default) java-21-openjdk
Set newer one as default:
$ sudo archlinux-java set java-21-openjdk We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. For security reasons, the password you type will not be visible.
Try Moneydance… fires right up.