Can't upgrade VASSAL on MacOS

Also ran following command with following reply:

imacgc:VASSAL-3.7.12 greg$ /Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home/bin/java -Duser.dir=. -classpath lib/Vengine.jar VASSAL.launch.ModuleManager
Error: LinkageError occurred while loading main class VASSAL.launch.ModuleManager
	java.lang.ExceptionInInitializerError: null
imacgc:VASSAL-3.7.12 greg$ 

Please run the following from the Vassal 3.7.12 install directory and show us the output:

/Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home/bin/java --version

and

ls -l lib

and

/Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home/bin/java -classpath lib/Vengine.jar VASSAL.launch.ModuleManager

Sure thing.
First up:

imacgc:VASSAL-3.7.12 greg$ /Library/Java/JavaVirtualMachines/temurin-11.jdk/Contents/Home/bin/java --version
openjdk 11.0.23 2024-04-16
OpenJDK Runtime Environment Temurin-11.0.23+9 (build 11.0.23+9)
OpenJDK 64-Bit Server VM Temurin-11.0.23+9 (build 11.0.23+9, mixed mode)
imacgc:VASSAL-3.7.12 greg$ 

Secondly:

imacgc:VASSAL-3.7.12 greg$ ls -l lib
total 45144
-rw-r--r--@  1 greg  staff  5570446  4 May 21:02 Vengine.jar
-rw-r--r--@  1 greg  staff   125428 18 Apr 04:10 asm-9.7.jar
-rw-r--r--@  1 greg  staff   485992 18 Apr 04:10 batik-anim-1.17.jar
-rw-r--r--@  1 greg  staff   424429 18 Apr 04:10 batik-awt-util-1.17.jar
-rw-r--r--@  1 greg  staff   704814 18 Apr 04:10 batik-bridge-1.17.jar
-rw-r--r--@  1 greg  staff   112314 18 Apr 04:10 batik-codec-1.17.jar
-rw-r--r--@  1 greg  staff     8436 18 Apr 04:10 batik-constants-1.17.jar
-rw-r--r--@  1 greg  staff   330640 18 Apr 04:10 batik-css-1.17.jar
-rw-r--r--@  1 greg  staff   184033 18 Apr 04:10 batik-dom-1.17.jar
-rw-r--r--@  1 greg  staff    10244 18 Apr 04:10 batik-ext-1.17.jar
-rw-r--r--@  1 greg  staff    72555 18 Apr 04:10 batik-extension-1.17.jar
-rw-r--r--@  1 greg  staff   173063 18 Apr 04:10 batik-gui-util-1.17.jar
-rw-r--r--@  1 greg  staff   192067 18 Apr 04:10 batik-gvt-1.17.jar
-rw-r--r--@  1 greg  staff    11427 18 Apr 04:10 batik-i18n-1.17.jar
-rw-r--r--@  1 greg  staff    76812 18 Apr 04:10 batik-parser-1.17.jar
-rw-r--r--@  1 greg  staff    24654 18 Apr 04:10 batik-script-1.17.jar
-rw-r--r--@  1 greg  staff     6670 18 Apr 04:10 batik-shared-resources-1.17.jar
-rw-r--r--@  1 greg  staff   230456 18 Apr 04:10 batik-svg-dom-1.17.jar
-rw-r--r--@  1 greg  staff   227423 18 Apr 04:10 batik-svggen-1.17.jar
-rw-r--r--@  1 greg  staff   191430 18 Apr 04:10 batik-swing-1.17.jar
-rw-r--r--@  1 greg  staff   129208 18 Apr 04:10 batik-transcoder-1.17.jar
-rw-r--r--@  1 greg  staff   127142 18 Apr 04:10 batik-util-1.17.jar
-rw-r--r--@  1 greg  staff    33826 18 Apr 04:10 batik-xml-1.17.jar
-rw-r--r--@  1 greg  staff  4212963 27 Apr 00:30 byte-buddy-1.14.14.jar
-rw-r--r--@  1 greg  staff   372608 30 Apr 06:19 commons-codec-1.17.0.jar
-rw-r--r--@  1 greg  staff   171943 18 Apr 04:10 commons-compiler-3.1.12.jar
-rw-r--r--@  1 greg  staff   508826 18 Apr 04:10 commons-io-2.16.1.jar
-rw-r--r--@  1 greg  staff   657952 18 Apr 04:10 commons-lang3-3.14.0.jar
-rw-r--r--@  1 greg  staff    38015 18 Apr 04:10 commons-logging-1.0.4.jar
-rw-r--r--@  1 greg  staff   861741 18 Apr 04:10 httpclient5-5.3.1.jar
-rw-r--r--@  1 greg  staff   855013 18 Apr 04:10 httpcore5-5.2.4.jar
-rw-r--r--@  1 greg  staff   237145 18 Apr 04:10 httpcore5-h2-5.2.4.jar
-rw-r--r--@  1 greg  staff   956369 18 Apr 04:10 janino-3.1.12.jar
-rw-r--r--@  1 greg  staff    59788 18 Apr 04:10 java-getopt-1.0.13.jar
-rw-r--r--@  1 greg  staff   143624 18 Apr 04:10 jlayer-1.0.1.jar
-rw-r--r--@  1 greg  staff   445706 18 Apr 04:10 jsoup-1.17.2.jar
drwxr-xr-x@ 13 greg  staff      416  4 May 21:04 licenses
-rw-r--r--@  1 greg  staff   293697 19 Apr 04:11 logback-classic-1.5.6.jar
-rw-r--r--@  1 greg  staff   609942 19 Apr 04:11 logback-core-1.5.6.jar
-rw-r--r--@  1 greg  staff    58708 18 Apr 04:10 maven-artifact-3.9.6.jar
-rw-r--r--@  1 greg  staff   120431 18 Apr 04:10 miglayout-core-11.3.jar
-rw-r--r--@  1 greg  staff    23280 18 Apr 04:10 miglayout-swing-11.3.jar
-rw-r--r--@  1 greg  staff   269335 18 Apr 04:10 plexus-utils-3.5.1.jar
-rw-r--r--@  1 greg  staff    68605 18 Apr 04:10 slf4j-api-2.0.13.jar
-rw-r--r--@  1 greg  staff  1495328 18 Apr 04:10 swingx-all-1.6.5-1.jar
-rw-r--r--@  1 greg  staff   102616 18 Apr 04:10 timingframework-1.0.jar
-rw-r--r--@  1 greg  staff     6596  4 May 21:00 vassal-agent.jar
-rw-r--r--@  1 greg  staff   236009 18 Apr 04:10 wizard-0.998.1.jar
-rw-r--r--@  1 greg  staff    85686 18 Apr 04:10 xml-apis-ext-1.3.04.jar
-rw-r--r--@  1 greg  staff   678189 18 Apr 04:10 xmlgraphics-commons-2.9.jar
imacgc:VASSAL-3.7.12 greg$ 

Lastly:
That p

OK, my previous message did not end properly as my keyboard stopped functioning after I ran that final command! The command opened Vassal 3.7.12. Could that have affected the keyboard? I had to do a complete re-boot.

Given that 3ā€¦7.12 can be opened in Terminal using that command path, can that be made into an application that I simply click on in future?

I suspect itā€™s a coincidence. No mechanism connecting the two comes to mind.

You could test this by trying a second time.

Possibly. Iā€™m looking into whether one can swap out the bundled Java in our MacOS release with another Java.

Would you try Java 17 once again, from the Vassal install directory with this command line?

/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/bin/java -classpath lib/Vengine.jar VASSAL.launch.ModuleManager

I suspect that this will work as well. Iā€™m not sure why setting user.dir would cause an exception on startup that has no stack trace, but it appears to do so.

Joel, that command line also works with Java 17. Great work.

Yes, you are probably right re the keyboard issueā€¦it has not re-occurred.

The next thing to check is whether you can replace the bundled Java in the MacOS release with the Java 17 youā€™ve installed.

So:

  1. Download the MacOS release.
  2. Install it.
  3. Look for /Applications/VASSAL 3.7.12.app/. Inside that there should be a directory tree named something like Contents/MacOS/jre, and inside that you should find bin/java. Would you confirm that this is the case? (We need to know the correct location for the bundled Java before proceeding further.)

Yes, that is all present as per the screenshot of the contents of the download of the MacOS Universal for 3.7.12.

Good.

Now:

  1. Delete /Applications/VASSAL 3.7.12.app/Contents/MacOS/jre.
  2. Move /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home to /Applications/VASSAL 3.7.12.app/Contents/MacOS/jre.
  3. Try running 3.7.12 from the app bundle.

Did that, and nothing happens.
Deleted the ā€˜jreā€™ folder of the 3.7.12 app inside Applications.
Moved the ā€˜jreā€™ folder from the temurin-17.jdk folder to the 3.7.12.app folder, then clicked on the application. No response.

This is the new directory of Vassal 3.7.12:

Screen Shot 2024-06-27 at 6.35.24 pm

Youā€™ve moved Home into jre instead of moving Home to be jre.

Everything in Home in your last screenshot should be in jre.

Ah, yesā€¦sorry. I did wonder about that.
All fixed and it is working fineā€¦well done, Joel. Thank you!
Does this help others?

2 Likes

Yes, this confirms that what I thought would work does. Thank you for your help with it.

For anyone who wants to run the current Vassal MacOS package on a version of MacOS which doesnā€™t support Java 21 or newer, the solution is to replace the bundled Java with Java 17.

2 Likes

Can you provide a simple step-by-step to replace the Java? I appreciate all your efforts and Breakerā€™s efforts to fix this.

  1. Download the MacOS release .
  2. Install it.
  3. Download Java 17.
  4. Install it.
  5. Delete /Applications/VASSAL 3.7.12.app/Contents/MacOS/jre.
  6. Move /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home to /Applications/VASSAL 3.7.12.app/Contents/MacOS/jre.

Great thank you!