Can't upgrade VASSAL on MacOS

OS: Mac OS 10.13.6
Memory: 16GB
VASSAL: 3.7.8

I am using Vassal 3.7.8. When I tried to upgrade to 3.7.12 Vassal would not work. When I try to launch it I get “Vassal unexpectedly quit”.
The same thing happened when I tried to upgrade to 3.7.10.

I went back to 3.7.8 and it works fine but I would like to upgrade. Any ideas?

MacOS 10.13 is quite old at this point. The version of Java bundled with our Mac packages probably requires something newer.

You could either upgrade to a newer version of MacOS or install a version of Java which works for you and use the package marked “other” instead of the one specifically for MacOS.

Thank you for the reply and ideas!

I have the same issue 3.7.9 is the last working version.

Release notes say, Upgrade bundled Java to Java 22, this is probably he problem so guessing need to stay at Java 21 for this to work.

Catalina is old but this macbook is still working and won’t upgrade any further.

My guess is that Java 21 will work, but I have no way to try it myself, so I can’t give a recommendation. If you try it, please report back.

I have the same issue. I have not been able to start up any versions of Vassal since 3.7.9. I am running Catalina 10.15.5 which cannot be further updated.
Memory: 8GB
Running on a late 2012 iMac.
Java has been updated to Java 8 Update 411, but I note from Vassal documentation that Mac packages come with their own Java updates.

Java 8 cannot work with any version of Vassal after 3.2.17. If you’re able to run Vassal 3.3 or later, I guarantee that you are not doing it with Java 8. Everything from Vassal 3.3.0 onward requires Java 11 or later.

Please try the suggested solution and let us know how it goes.

Joel, do you think it would be worth the effort to create a new “Mac Catalina” package that packages an older version of Java, for all these users with older Macs that can’t run anything newer? I know it’s theoretically possible for the Mac users to install Java themselves and use the “other” VASSAL package, but that’s seems like it’s too complicated for some users to figure out without a lot of assistance.

I assume these older Macs are all Intel/x86, so at least we wouldn’t need an Arm version…

I’d like to see how people get on with installing Java first. Prior to 3.3.0, we didn’t bundle Java at all—everyone using MacOS installed Java themselves.

Hi Joel…thanks for your reply. In System Preferences, the Java pane reports that I have the recommended version of Java - Java 8 Update 411. I am not able to update it further. I thought this was immaterial though, given that Vassal installations include their own, more recent, Java component? (which is why I can run 3.7.9 without any issues)? Sorry, I don’t know enough of the technical side of this to really know how to proceed.

Yes, you’re not able to update Java 8 further. No version of Java after 8 is managed the way Java 8 and earlier were on MacOS.

Yes, this is correct. Java 8 is irrelevant to running Vassal 3.3.0 or later. Java 8 won’t (and can’t) be used; it doesn’t matter if Java 8 is current or installed at all.

The salient point here is that the version of Java bundled with Vassal 3.7.10 and later does not work with the version of MacOS you have, so

  • you need to install a version of Java between 11 and 21 which does work on your system, and
  • you need to install the Vassal package which is generic and does not bundle Java with it, so that it can use the working version of Java you’ve installed.

The version of Java you should try first is here. The Vassal 3.7.12 pacakge you need is this one.

Hi Joel,
Thank you for your instructions. I have downloaded (and installed) Adoptium 17-LTS and also downloaded the Vassal package 3.7.12 as you suggest. The question is, what do I do now? I don’t know how to run 3.7.12 as I don’t see any executable file that runs Vassal in the download. Is there anything more to do with 17-LTS once it installs? Many thanks!

Run VASSAL.sh. That’s the shell script which starts Vassal.

Nope…did that, and all that happened is that it opened Terminal.

It’s a shell script. You need to run it from the terminal.

Open a terminal, go to the directory where VASSAL.sh is, and run ./VASSAL.sh.

HMMM…in Terminal, I get into the Vassal-3.7.12 folder, and attempt to run the .sh file:
imacgc:Vassal-3.7.12 greg$ ./VASSAL.sh

but get:

./VASSAL.sh: line 20: realpath: command not found

Doing something wrong?

No, realpath isn’t installed by default on MacOS, which is aggravating.

Edit this line in VASSAL.sh:

EXEC_PATH=$(realpath "$0")

to be this instead:

EXEC_PATH=$( cd "$(dirname "$0")" ; pwd -P )

Then try running VASSAL.sh.

What is the result?

This is the result, Joel:

Error: /usr/bin/java is too old to run this version of Vassal. Please use Java 11 or later.

I think jrwatts made an excellent suggestion :slight_smile:

The Java 17 you installed isn’t on the PATH, so the version of Java 8 you have is being found and correctly rejected.

The next thing to do is determine where Java 17 is installed,.

Once you’ve done that, what you’ll need to run is:

JAVA=/path/to/java17/bin/java ./VASSAL.sh

where you replace the dummy path with the path you found for the Java 17 installation. (The last two path components should be something like bin/java, because this path needs to be to the java executable.)

I’m willing to supply a MacOS-specific startup script in the “other” package (which I now think we should rename to “any” or “generic”); the only way to determine what needs to be in that is to work through it, which I cannot do myself because I don’t have anything running MacOS.

I’m not willing to build a second MacOS package for very old versions of MacOS. When we had two MacOS packages, we got endless questions from users about which one they needed; once we were able to produce a universal package, those questions stopped. The number of people who would be helped by a MacOS package for very old versions of MacOS is tiny and diminishing, while the number of people who would be confused by its existence is much larger. I don’t want to reintroduce that confusion and maintenance burden.

1 Like

This is getting too hard for little old me, but thanks for your efforts Joel.
I did find the Java update files I downloaded - see the screenshot.

The Java directory that contains all of this, is sitting inside the Library directory.

Does that help in providing the pathway?