3.6.0 on Linux doesn't recognize Java 11

I have Vassal 3.5.8 installed in Linux container on HP Chromebook and it works great. I installed Java 11 and Vassal 3.6.0 using instructions at Building Vassal - Vassal
I am getting the following error when I try to run Vassal:
“Error: /usr/bin/java is too old to run this version of Vassal. Please use Java 11 or later.”

However, the java -version command shows that Java 11 is installed.
tm@penguin:~/vassal/dist$ java -version
openjdk version “11.0.12” 2021-07-20
OpenJDK Runtime Environment (build 11.0.12+7-post-Debian-2deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.12+7-post-Debian-2deb10u1, mixed mode, sharing)

Any tips?

How exactly are you trying to run Vassal? (What’s the command line you’re using?)

By going to ~/vassal/dist/ and running ./VASSAL.sh command
Same as I run v3.5.8 except that VASSAL.sh in 3.6.0 is in ~/vassal/dist/ directory and not in ~/vassal/ directory as v3.5.8

You’re not supposed to run the shell script from dist/. That’s just where it lives before it’s put into the Linux tarball when you run make release-linux. In particular, INSTALL_DIR won’t point to where Vengine.jar is if you do that.

If you’re going to run in a development environment, you need INSTALL_DIR to point to the right place. The script I use myself when developing is this:

#!/bin/bash

INSTALL_DIR=$(cd "$(dirname "$0")"; pwd)

java -Duser.dir="$INSTALL_DIR" -classpath "$INSTALL_DIR"/release-prepare/target/lib/Vengine.jar VASSAL.launch.ModuleManager "$@"

and I run that from the root of the git repo after running make.

I see. I haven’t used Linux in almost a decade so I’m quite rusty. I didn’t try to run it in developer mode. :slight_smile:
(Never used github etc). So I had not realized that the make command didn’t build it correctly and I had thought I was done.
Now I just downloaded the 3.6.1 tarball and got Vassal to run just fine!
Thank you for your help!

1 Like

Ah, since you linked to the page about building, I thought you were trying to set up a development environment. (make does build Vassal correctly, but it doesn’t package Vassal—you need make release-linux for that.)

If all you want to do is run Vassal, then you should download the tarball, as you discovered.