Create account / Log in

xubuntu 18.04 & module load error fix

Issues with the Vassal engine.

Moderators: Tim M, uckelman

xubuntu 18.04 & module load error fix

Postby gronard42 » September 22nd, 2018, 4:00 am

Running Vassal 3.2.17 under xubuntu 18.04 produced this error when trying to load a module

Code: Select all
2018-09-22 13:28:03,809 [0-main] INFO  VASSAL.launch.StartUp - Starting
2018-09-22 13:28:03,811 [0-main] INFO  VASSAL.launch.StartUp - OS Linux 4.15.0-34-generic
2018-09-22 13:28:03,812 [0-main] INFO  VASSAL.launch.StartUp - Java version 10.0.2
2018-09-22 13:28:03,812 [0-main] INFO  VASSAL.launch.StartUp - VASSAL version 3.2.17
2018-09-22 13:28:04,106 [0-AWT-EventQueue-0] INFO  VASSAL.launch.ModuleManager - Manager
2018-09-22 13:28:21,508 [0-SwingWorker-pool-1770807808-thread-1] INFO  VASSAL.launch.AbstractLaunchAction - Loading module file /home/suhtek/Downloads/mods/Ambush_v1.1.vmod
2018-09-22 13:28:21,633 [0-SwingWorker-pool-1770807808-thread-1] INFO  VASSAL.launch.TilingHandler - No images to tile.
2018-09-22 13:28:21,634 [0-SwingWorker-pool-1770807808-thread-1] INFO  VASSAL.launch.AbstractLaunchAction - Loading module Ambush
2018-09-22 13:28:21,638 [0-SwingWorker-pool-1770807808-thread-1] INFO  VASSAL.tools.io.ProcessLauncher - launching /usr/lib/jvm/java-11-openjdk-amd64/bin/java -Xms256M -Xmx512M -DVASSAL.id=1 -DVASSAL.port=46819 -Duser.home=/home/suhtek -Duser.dir=/media/suhtek/STEAMLIB/SYSTEM/VASSAL-3.2.17 -cp /media/suhtek/STEAMLIB/SYSTEM/VASSAL-3.2.17/lib/Vengine.jar VASSAL.launch.Player --load -- /home/suhtek/Downloads/mods/Ambush_v1.1.vmod
2018-09-22 13:28:22,643 [1-main] INFO  VASSAL.launch.StartUp - Starting
2018-09-22 13:28:22,648 [1-main] INFO  VASSAL.launch.StartUp - OS Linux 4.15.0-34-generic
2018-09-22 13:28:22,648 [1-main] INFO  VASSAL.launch.StartUp - Java version 10.0.2
2018-09-22 13:28:22,648 [1-main] INFO  VASSAL.launch.StartUp - VASSAL version 3.2.17
2018-09-22 13:28:22,649 [1-main] INFO  VASSAL.launch.Launcher - Player
2018-09-22 13:28:23,137 [0-ProcessLauncher-2] WARN  VASSAL.tools.logging.LoggedOutputStream - WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by VASSAL.tools.image.ImageIOImageLoader (file:/media/suhtek/STEAMLIB/SYSTEM/VASSAL-3.2.17/lib/Vengine.jar) to field sun.java2d.cmm.ProfileDeferralMgr.deferring
WARNING: Please consider reporting this to the maintainers of VASSAL.tools.image.ImageIOImageLoader
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2018-09-22 13:28:23,516 [1-AWT-EventQueue-0] ERROR VASSAL.tools.ErrorDialog -
java.lang.NoClassDefFoundError: org/w3c/dom/ls/DocumentLS
   at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
   at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1009) ~[na:na]
   at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:801) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:699) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:622) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) ~[na:na]
   at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190) ~[na:na]
   at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499) ~[na:na]
   at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
   at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1009) ~[na:na]
   at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:801) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:699) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:622) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) ~[na:na]
   at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190) ~[na:na]
   at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499) ~[na:na]
   at org.apache.xerces.util.ObjectFactory.findProviderClass(Unknown Source) ~[xercesImpl.jar:na]
   at org.apache.xerces.parsers.AbstractDOMParser.setDocumentClassName(Unknown Source) ~[xercesImpl.jar:na]
   at org.apache.xerces.parsers.AbstractDOMParser.reset(Unknown Source) ~[xercesImpl.jar:na]
   at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) ~[xercesImpl.jar:na]
   at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) ~[xercesImpl.jar:na]
   at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) ~[xercesImpl.jar:na]
   at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122) ~[na:na]
   at VASSAL.build.Builder.createDocument(Builder.java:160) ~[Vengine.jar:na]
   at VASSAL.launch.BasicModule.build(BasicModule.java:110) ~[Vengine.jar:na]
   at VASSAL.build.GameModule.init(GameModule.java:855) ~[V


OpenJdk 11 is the current default for xubuntu bionic so I installed OpenJdk 8 via synaptic.

running the following code brings up a cmdline menu to change default java implementation:
Code: Select all
sudo update-alternatives --config java


should produce output somewhat like:
Code: Select all
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      auto mode
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1101      manual mode
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

Press <enter> to keep the current choice[*], or type selection number:


entering <2> sets to java 8.

to test if that worked enter:
Code: Select all
java -version


which outputs:
Code: Select all
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)


Vassal now works :)

a quicker method is to run the following code before launching vassal
Code: Select all
sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java


this will set Java to Java 8.
note: your path may vary, the previous --config command will output the actual paths needed to invoke these codes.

after closing vassal execute the following to reset java back to java 11
Code: Select all
sudo update-alternatives --set java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
gronard42
 
Posts: 1
Joined: September 22nd, 2018, 3:34 am

Re: xubuntu 18.04 & module load error fix

Postby rdmorss » September 24th, 2018, 11:43 pm

Thanks for that good info about java in ubuntu linux!
In my case, since VASSAL is the only java application I ever use, openjdk-java-8 is the only java I have installed.
rdmorss
 
Posts: 27
Joined: October 4th, 2010, 1:40 am
Location: Sanford Maine


Return to Technical Support & Bugs

Who is online

Users browsing this forum: Google [Bot] and 4 guests