VASSAL 3.4.12

Have tried several times to download this version but keep getting internal error (bug) report each time and am unable to run VASSAL at all. Please help. Thanks.

Give us details about the error. What was the message? Was there a stack trace? Without those, we can’t help.

I’m having a similar issue.

I downloaded VASSAL 3.4.12 onto my RedHat 7.9 box, installed java 11, but get the following Exception-- and unforunately ONLY the following – when attempting to run the VASSAL.sh script:

[VASSAL-3.4.12]$ ls
CHANGES doc lib LICENSE README.md VASSAL.sh
[VASSAL-3.4.12]$ ./VASSAL.sh

Exception: java.lang.NoClassDefFoundError thrown from the UncaughtExceptionHandler in thread “main”
[VASSAL-3.4.12]$ java -version
openjdk version “11.0.9” 2020-10-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.9+11-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11-LTS, mixed mode, sharing)

Unfortunately I’m not seeing a call stack or any other type of error log, so that’s really all the information I can think to provide you. If someone can perhaps suggest any other way to get more information (perhaps my modifying the sh script?) I will gladly give it a try. I’ve checked my /tmp and /var/log and there doesn’t seem to be any java/VASSAL related error logs there either, so that really is all I can give you.

Thus spake firefly4f4:

Unfortunately I’m not seeing a call stack or any other type of error
log, so that’s really all the information I can think to provide you.
If someone can perhaps suggest any other way to get more information
(perhaps my modifying the sh script?) I will gladly give it a try. I’ve
checked my /tmp and /var/log and there doesn’t seem to be any
java/VASSAL related error logs there either, so that really is all I can
give you.

You should find an error log in ~/.VASSAL. What’s in it?


J.

SHOULD, maybe, but there is none.

[VASSAL-3.4.12]$ ls
CHANGES doc lib LICENSE README.md VASSAL.sh

That’s all that’s in the directory. If you’d like me to modify the last line in the VASSAL.sh file to have JAVA dump more diagnostics, please just let me know what to add.

By which I mean, is there any way I could modify this line in VASSAL.sh to get more information:

Launch VASSSAL

“$JAVA” -Duser.dir="$INSTALL_DIR" -classpath “$INSTALL_DIR”/lib/Vengine.jar --add-exports java.desktop/sun.java2d.cmm=ALL-UNNAMED VASSAL.launch.ModuleManager “$@”

So I did a bit of digging and found the -Xdiag option. Here’s the difference in output between the script without and with that option.

[VASSAL-3.4.12]$ ./VASSAL.sh (without -Xdiag)

Exception: java.lang.NoClassDefFoundError thrown from the UncaughtExceptionHandler in thread “main”
[VASSAL-3.4.12]$ ./VASSAL.sh (with -Xdiag)
Exception in thread “main” java.lang.UnsatisfiedLinkError: Can’t load library: /usr/lib/jvm/java-11-openjdk-11.0.9.11-0.el7_9.x86_64/lib/libawt_xawt.so
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2630)
at java.base/java.lang.Runtime.load0(Runtime.java:768)
at java.base/java.lang.System.load(System.java:1837)
at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2648)
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:830)
at java.base/java.lang.System.loadLibrary(System.java:1873)
at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1399)
at java.desktop/java.awt.Toolkit$3.run(Toolkit.java:1397)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/java.awt.Toolkit.loadLibraries(Toolkit.java:1396)
at java.desktop/java.awt.Toolkit.(Toolkit.java:1429)
at java.desktop/java.awt.Component.(Component.java:621)
at VASSAL.preferences.PrefsEditor.(PrefsEditor.java:60)
at VASSAL.preferences.Prefs.getGlobalPrefs(Prefs.java:254)
at VASSAL.i18n.Resources.init(Resources.java:106)
at VASSAL.i18n.Resources.(Resources.java:78)
at VASSAL.i18n.Resources.getInstance(Resources.java:84)
at VASSAL.i18n.Resources.getString(Resources.java:331)
at VASSAL.launch.LaunchRequestException.(LaunchRequestException.java:41)
at VASSAL.launch.LaunchRequest.die(LaunchRequest.java:446)
at VASSAL.launch.LaunchRequest.parseArgs(LaunchRequest.java:339)
at VASSAL.launch.ModuleManager.main(ModuleManager.java:106)

So it may be that I’m missing a JAVA module somehow. I’ll dig into it, but if you have any suggestions I’m opening to hearing them.

FYI, I installed java-11-openjdk-11.0.9.11-0.el7_9.x86_64 (not sure how that was missed) and the program now seems to run for me.

The problem you were seeing is a fairly common one on Linux distributions which package a headless Java—you had Java, but you didn’t have one which can display windows in your GUI. What you installed was a version of Java which can do that.

FYI, the .VASSAL directory is a hidden directory in your home folder, not a subdirectory of the VASSAL installation directory. The “~” in “~/.VASSAL” is shorthand for /home/, where is your user name. ls ~/.VASSAL should show you the contents (specifically, the error log).