Create account / Log in

VASSAL doesn't seem to work with Java 9 version

Issues with the Vassal engine.

Moderators: Tim M, uckelman

Re: VASSAL doesn't seem to work with Java 9 version

Postby uckelman » January 17th, 2019, 5:11 pm

Thus spake pacman-ghost:
> Thanks for the comprehensive answer.
>
> My main concern was that there is no guidance for users on how to
> resolve these issues (and they're starting to see them, as their system
> Java's are being updated) and since many/most of these people are
> non-technical, they don't have a clue how to resolve them.

There was no guidance for users on how to resolve these issues because
we haven't resovled them yet. Yesterday evening was my first chance to
investigate any of them.

I've found a few additional problems; once I've solved them, I'll post
a test build here.

> But before any work like that can be done, what versions of Java do you
> want to actually target? Given that 9 and 10 are EOL, people should
> probably be discouraged from using them. So, for example:
> Java 5-7: deprecated
> Java 8: supported
> Java 9-10: unsupported (might work, might not, you're on your own)
> Java 11: provisionally supported (but if you're using VASSAL 3.2.17,
> click here for instructions on things you need to do)

I'd prefer to target 11, so long as we're certain that 11 is available
for all plaftorms where VASSAL is run. I want this to be the last time
we migrate to a newer minimum version of Java.

--
J.
User avatar
uckelman
Site Admin
 
Posts: 8113
Joined: December 10th, 2007, 9:48 am
Location: Durham, England

Re: VASSAL doesn't seem to work with Java 9 version

Postby calm1010 » May 18th, 2019, 8:44 pm

uckelman wrote:I've made a pass at answering some questions, as promised:

* Does VASSAL work with Java 9? 10? 11?

Java 9 and Java 11 work for me on Linux after I remove lib/xercesImpl.jar. Apparently as of Java 9, the XML handling classes provided by the Xerces library became part of the JDK, so trying to load them from Xerces causes a name conflict which prevents the VASSAL player (but not the module manager) from starting. I haven't tried Java 10, but my guess is that it will be the same in this regard as 9 and 11.



Thanks !!! Removing lib/xercesImpl.jar solved the problem.
calm1010
 
Posts: 3
Joined: May 18th, 2019, 7:50 pm

Re: VASSAL doesn't seem to work with Java 9 version

Postby CBfromOZ » August 30th, 2019, 9:15 am

Posting here because 'report bug' failed on an internal error (!)


These fixes didnt work for me.

* fresh install of opensuse
* using: java-11-openjdk-11.0.4.0-lp151.3.6.1.x86_64
* removed /usr/share/java/xerces*.jar

Vassal starts with a warning of:
Code: Select all
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by VASSAL.tools.image.ImageIOImageLoader (file:/home/korg/bin/vassal.installed/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


but seems to start up ok (i get the about screen and main menu) but it then if i try to open vasl or run the 'take the tour' intro it bombs with...

Code: Select all
2019-08-30 19:13:16,976 [0-main] INFO  VASSAL.launch.StartUp - Starting
2019-08-30 19:13:16,979 [0-main] INFO  VASSAL.launch.StartUp - OS Linux 4.12.14-lp151.28.13-default
2019-08-30 19:13:16,979 [0-main] INFO  VASSAL.launch.StartUp - Java version 11.0.4
2019-08-30 19:13:16,979 [0-main] INFO  VASSAL.launch.StartUp - VASSAL version 3.2.17
2019-08-30 19:13:17,292 [0-AWT-EventQueue-0] INFO  VASSAL.launch.ModuleManager - Manager
2019-08-30 19:13:20,107 [0-SwingWorker-pool-385739920-thread-2] INFO  VASSAL.launch.AbstractLaunchAction - Loading module file /home/korg/bin/vassal.installed/VASSAL-3.2.17/doc/tour.mod
2019-08-30 19:13:20,331 [0-SwingWorker-pool-385739920-thread-2] INFO  VASSAL.tools.io.ProcessLauncher - launching /usr/lib64/jvm/java-11-openjdk-11/bin/java -classpath /home/korg/bin/vassal.installed/VASSAL-3.2.17/lib/Vengine.jar -Xmx159M -DVASSAL.id=2 -Duser.home=/home/korg -DVASSAL.port=39669 VASSAL.tools.image.tilecache.ZipFileImageTiler /home/korg/bin/vassal.installed/VASSAL-3.2.17/doc/tour.mod /home/korg/.VASSAL/tiles/fabc96ea565c612b78e1fd47dcf965414160e42a 256 256
2019-08-30 19:13:21,216 [2-main] INFO  VASSAL.tools.image.tilecache.ZipFileImageTiler - Starting
2019-08-30 19:13:21,284 [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:/home/korg/bin/vassal.installed/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
2019-08-30 19:13:21,303 [2-main] INFO  VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/Map_West.gif
2019-08-30 19:13:21,583 [2-main] INFO  VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/Tile_Gap_2.jpg.gif
2019-08-30 19:13:21,728 [2-main] INFO  VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/Tile_Hallway_1.jpg.gif
2019-08-30 19:13:21,755 [2-main] INFO  VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/Tile_Hallway_2.jpg.gif
2019-08-30 19:13:21,797 [2-main] INFO  VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/Tile_Hallway_3.jpg.gif
2019-08-30 19:13:21,832 [2-main] INFO  VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/Tile_Hallway_4.jpg.gif
2019-08-30 19:13:21,856 [2-main] INFO  VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/Tile_T_Wall.jpg.gif
2019-08-30 19:13:21,883 [2-main] INFO  VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/VIP-map2.png
2019-08-30 19:13:22,165 [2-main] INFO  VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/WAP3.gif
2019-08-30 19:13:22,208 [2-main] INFO  VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/bd03.gif
2019-08-30 19:13:22,251 [2-main] INFO  VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/bd41.gif
2019-08-30 19:13:22,362 [2-main] INFO  VASSAL.tools.image.tilecache.FileArchiveImageTiler - Tiling images/tourForces.gif
2019-08-30 19:13:22,379 [2-main] INFO  VASSAL.tools.image.tilecache.ZipFileImageTiler - Exiting
2019-08-30 19:13:22,404 [0-SwingWorker-pool-385739920-thread-2] INFO  VASSAL.launch.AbstractLaunchAction - Loading game file /home/korg/bin/vassal.installed/VASSAL-3.2.17/doc/tour.log
2019-08-30 19:13:22,407 [0-SwingWorker-pool-385739920-thread-2] INFO  VASSAL.launch.AbstractLaunchAction - Loading module VASSAL Tour
2019-08-30 19:13:22,408 [0-SwingWorker-pool-385739920-thread-2] INFO  VASSAL.tools.io.ProcessLauncher - launching /usr/lib64/jvm/java-11-openjdk-11/bin/java -Xms256M -Xmx512M -DVASSAL.id=1 -DVASSAL.port=44591 -Duser.home=/home/korg -Duser.dir=/home/korg/bin/vassal.installed/VASSAL-3.2.17 -cp /home/korg/bin/vassal.installed/VASSAL-3.2.17/lib/Vengine.jar VASSAL.launch.Player --load -- /home/korg/bin/vassal.installed/VASSAL-3.2.17/doc/tour.mod /home/korg/bin/vassal.installed/VASSAL-3.2.17/doc/tour.log
2019-08-30 19:13:23,336 [1-main] INFO  VASSAL.launch.StartUp - Starting
2019-08-30 19:13:23,340 [1-main] INFO  VASSAL.launch.StartUp - OS Linux 4.12.14-lp151.28.13-default
2019-08-30 19:13:23,340 [1-main] INFO  VASSAL.launch.StartUp - Java version 11.0.4
2019-08-30 19:13:23,340 [1-main] INFO  VASSAL.launch.StartUp - VASSAL version 3.2.17
2019-08-30 19:13:23,340 [1-main] INFO  VASSAL.launch.Launcher - Player
2019-08-30 19:13:23,801 [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:/home/korg/bin/vassal.installed/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
2019-08-30 19:13:24,169 [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:1016) ~[na:na]
   at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:802) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:623) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na]
   at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
   at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
   at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
   at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016) ~[na:na]
   at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:802) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:623) ~[na:na]
   at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na]
   at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
   at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[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) ~[Vengine.jar:na]
   at VASSAL.launch.Player.launch(Player.java:83) ~[Vengine.jar:na]
   at VASSAL.launch.Launcher$1.run(Launcher.java:149) ~[Vengine.jar:na]
   at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313) ~[na:na]
   at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) ~[na:na]
   at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) ~[na:na]
   at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) ~[na:na]
   at java.base/java.security.AccessController.doPrivileged(Native Method) ~[na:na]
   at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) ~[na:na]
   at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740) ~[na:na]
   at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) ~[na:na]
   at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) ~[na:na]
   at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) ~[na:na]
   at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) ~[na:na]
   at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) ~[na:na]
   at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) ~[na:na]
Caused by: java.lang.ClassNotFoundException: org.w3c.dom.ls.DocumentLS
   at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) ~[na:na]
   at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
   at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
   ... 43 common frames omitted
CBfromOZ
 
Posts: 2
Joined: August 30th, 2019, 9:04 am

Re: VASSAL doesn't seem to work with Java 9 version

Postby uckelman » September 13th, 2019, 9:52 pm

Look here for test builds for use with Java 9 or later:

viewtopic.php?p=57576&sid=ab00fd9d02853f08d09ee8d75481c6d4#p57576
User avatar
uckelman
Site Admin
 
Posts: 8113
Joined: December 10th, 2007, 9:48 am
Location: Durham, England

Previous

Return to Technical Support & Bugs

Who is online

Users browsing this forum: No registered users and 3 guests