Sign in to follow this  
Sorien

Cannot launch on CentOS 7

Recommended Posts

I am running into the following error when trying to launch Wurm on CentOS 7:

 

net.sourceforge.jnlp.LaunchException: Fatal: Launch Error: Could not launch JNLP file. The application has not been initialized, for more information execute javaws/browser from the command line and send a bug report.
	at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:577)
	at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:940)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:571)
	... 1 more
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.access$1701(JNLPClassLoader.java:103)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader$5.run(JNLPClassLoader.java:1665)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader$5.run(JNLPClassLoader.java:1662)
	at java.security.AccessController.doPrivileged(Native Method)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.findClass(JNLPClassLoader.java:1661)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClassExt(JNLPClassLoader.java:1698)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClass(JNLPClassLoader.java:1497)
	at com.wurmonline.client.launcherfx.WurmLaunchWrapper.main(SourceFile:27)
	... 6 more
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClass(JNLPClassLoader.java:1561)
	... 23 more

Java version:

openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)

 

Any ideas?

 

-Sorien

 

 

Edited by Sorien

Share this post


Link to post
Share on other sites

OpenJDK does not work, SUN/Oracle Java runtime from https://java.com is needed. Just download the launcher which will download its own copy of that Java version and place it in its wurm-launcher start directory. Then start your_tree/wurm-launcher/WurmLaucher, and it will run using your $HOME{or elsewhere}/wurm directory, if not there, it will be created.

 

When using the JNLP,  you must download runtime from java.com manually and use the according path for the JNLP.

Edited by Ekcin

Share this post


Link to post
Share on other sites
6 hours ago, Ekcin said:

OpenJDK does not work, SUN/Oracle Java runtime from https://java.com is needed. Just download the launcher which will download its own copy of that Java version and place it in its wurm-launcher start directory. Then start your_tree/wurm-launcher/WurmLaucher, and it will run using your $HOME{or elsewhere}/wurm directory, if not there, it will be created.

 

When using the JNLP,  you must download runtime from java.com manually and use the according path for the JNLP.

 

I did run the launcher manually and that was the output I got. I will see what I need to do to install Oracle Java on CentOS 7

 

-Sorien

Share this post


Link to post
Share on other sites

Same issue:

 

net.sourceforge.jnlp.LaunchException: Fatal: Launch Error: Could not launch JNLP file. The application has not been initialized, for more information execute javaws/browser from the command line and send a bug report.
	at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:577)
	at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:940)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:571)
	... 1 more
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.access$1701(JNLPClassLoader.java:103)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader$5.run(JNLPClassLoader.java:1665)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader$5.run(JNLPClassLoader.java:1662)
	at java.security.AccessController.doPrivileged(Native Method)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.findClass(JNLPClassLoader.java:1661)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClassExt(JNLPClassLoader.java:1698)
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClass(JNLPClassLoader.java:1497)
	at com.wurmonline.client.launcherfx.WurmLaunchWrapper.main(SourceFile:27)
	... 6 more
Caused by: java.lang.ClassNotFoundException: javafx.application.Application
	at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClass(JNLPClassLoader.java:1561)
	... 23 more

Using Oracle Java:

 

$ java --version
java 15.0.1 2020-10-20
Java(TM) SE Runtime Environment (build 15.0.1+9-18)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing)
 

Any other ideas?

 

-Sorien

Share this post


Link to post
Share on other sites
7 hours ago, Sorien said:

Using Oracle Java:

 

$ java --version
java 15.0.1 2020-10-20
Java(TM) SE Runtime Environment (build 15.0.1+9-18)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing)
 

Any other ideas?

 

-Sorien

 

Create the folder ~/wurm and place the WurmLauncher in that folder then run it.

Share this post


Link to post
Share on other sites

I still did not fully understand what you invoked. Did you use javaws from Oracle java? Mind that you need Version 8, not the actual one not containing javaws anymore. Or did you download the launcher from https://client.wurmonline.com/client/wurmlauncher.tar.gz ? Mind that the file has a wrong MIME header, to work around see

 

 

Share this post


Link to post
Share on other sites
On 11/2/2020 at 1:44 AM, riceri said:

 

Create the folder ~/wurm and place the WurmLauncher in that folder then run it.

No luck, I am getting this:

 

`error while loading shared libraries: libpng16.so.16`

 

Which according to the CentOS forums is because CentOS 7 ships with libpng15, not 16. So, I tried another route to see if I could get it to run in Ubuntu 20.04 using Boxes, which is a virtualization container. I get as far as the splash screen where it downloads everything (the small one, not the one with the login boxes), then it crashes with this message (when I launch from terminal):

 

`Segmentation fault (core dumped)`

 

Any idea how to further debug that one?

 

Edit: Found this, at least got it running in the Boxes! :) 

 

 

 

Not good enough to really play (everything slower) but should be able to at least pay deed upkeep.

 

Edit #2 Doh! Crashes just before I actually get into my deed! Same error, segmentation fault, all the way to to the final loading screen. The music even starts playing!

 

-Sorien

Edited by Sorien

Share this post


Link to post
Share on other sites

So in the container for Ubuntu 20.04, this where I am at... per this thread here:

 

 

The launcher is in a directory named ~/wurm-launcher, the game is in a directory named ~/wurm, and I am launching from terminal using sudo. It gets what I am assuming is all the way up to the end, and then dying with this output:

 

Vertex/index buffer memory limit: 0MiB
Starting workaround for fast running clocks
Using LWJGL timer.
Startup Phase - Initializing..
Preloading builtin materials
Preloading builtin materials done
Setting up Collada Model Loader
Launching Collada Model Loader threads
Launching WOM Loader threads
Startup Phase - Setting up..
Loading window positions from /user/wurm/players/Sorien/windows_2488x1573.txt
Loading props file /user/wurm/players/Sorien/windows_2488x1573.txt
Gui initialized
Startup Phase - Preparing terrain...
Startup Phase - Connecting ..
Disabling Nagles
Writing to /user/wurm/players/Sorien/logs/_Event.2020-12.txt
Disabling Nagles
Writing to /user/wurm/players/Sorien/logs/Alliance.2020-12.txt
Writing to /user/wurm/players/Sorien/logs/Village.2020-12.txt
Writing to /user/wurm/players/Sorien/logs/CA_HELP.2020-12.txt
Writing to /user/wurm/players/Sorien/logs/GL-Freedom.2020-12.txt
Writing to /user/wurm/players/Sorien/logs/Freedom.2020-12.txt
Writing to /user/wurm/players/Sorien/logs/Trade.2020-12.txt
Login successful
Executing /user/wurm/configs/default/autorun.txt
Starting update of login splash image...
Finished loading new login splash image!
Segmentation fault

Any ideas on what to try next? Thanks.

 

Edit: I realized looking at that it was installing it using my username off of the root, instead of /home/user, just switched it and resinstalled, exact same issue. :( 

 

-Sorien

Edited by Sorien

Share this post


Link to post
Share on other sites

I have at least a vague idea about the container issue. Maybe the graphics support in the virtualization is insufficient to support the splash screen. Try a strace -f -i ~/wurm/WurmLauncher 2>  strace.out (huge masses of text), maybe that gives a hint where the SIGSEGV occurs.

 

As to the libpng, can't you download the appropriate shared library somewhere, store it under for example /usr/local/lib/libpng16.so , then before starting WurmLauncher, enter "export LD_LIBRARY_PATH=/usr/local/lib/lib/local/lib:$LD_LIBRARY_PATH". That should do the trick without interfering with CENTOS.

Share this post


Link to post
Share on other sites
16 hours ago, Ekcin said:

As to the libpng, can't you download the appropriate shared library somewhere, store it under for example /usr/local/lib/libpng16.so , then before starting WurmLauncher, enter "export LD_LIBRARY_PATH=/usr/local/lib/lib/local/lib:$LD_LIBRARY_PATH". That should do the trick without interfering with CENTOS.

 

It would be great if it were that easy. :)  There is only 1 3rd party vendor that supplies that library (and many others) for CentOS 7, and they want $50 for it. 

 

The strace is 1,902,513 lines long, and I don't know how to read it. It ends like this (the SIGABRT actually repeats about 100x before this bit):

 

[pid  2155] [????????????????] +++ killed by SIGABRT (core dumped) +++
[pid  2214] [????????????????] +++ killed by SIGABRT (core dumped) +++
[pid  2202] [????????????????] +++ killed by SIGABRT (core dumped) +++
[pid  2174] [????????????????] +++ killed by SIGABRT (core dumped) +++
[pid  2170] [????????????????] +++ killed by SIGABRT (core dumped) +++
[pid  2168] [????????????????] +++ killed by SIGABRT (core dumped) +++
[pid  2099] [????????????????] +++ killed by SIGABRT (core dumped) +++
[pid  2144] [????????????????] +++ killed by SIGABRT (core dumped) +++
[pid  2079] [00007f6fc179a58a] <... epoll_wait resumed>[{EPOLLIN|EPOLLHUP, {u32=10, u64=10}}], 64, -1) = 1
[pid  2079] [00007f6fc1885057] recvmsg(10, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="", iov_len=2048}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 0
[pid  2079] [00007f6fc179ac5e] epoll_ctl(3, EPOLL_CTL_DEL, 10, 0x7ffc4a4ed70c) = 0
[pid  2079] [00007f6fc18843d7] close(10) = 0
[pid  2079] [00007f6fc179a58a] epoll_wait(3,  <unfinished ...>
[pid  2136] [????????????????] +++ killed by SIGABRT (core dumped) +++
[pid  2073] [????????????????] +++ killed by SIGABRT (core dumped) +++
[pid  2078] [00007ff0df4880da] <... select resumed>) = ? ERESTARTNOHAND (To be restarted if no handler)
strace: Process 2078 detached
strace: Process 2079 detached

And this is the output in terminal:

 

Writing to /home/user/wurm/players/Sorien/logs/Freedom.2020-12.txt
Writing to /home/user/wurm/players/Sorien/logs/Trade.2020-12.txt
Initializing font texture for Cry Uncial (64). Texture Size: 1024
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f4679e22e90, pid=2073, tid=0x00007f45b14bf700
#
# JRE version: Java(TM) SE Runtime Environment (8.0_211-b12) (build 1.8.0_211-b12)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.211-b12 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [swrast_dri.so+0x192e90]
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/user/wurm-launcher/hs_err_pid2073.log

-Sorien

Share this post


Link to post
Share on other sites

I can't make sense of the strace snippet, and I know that strace output is huge and not very easy to interpret. It seems that a lot of subprocesses are spawned for some reason and fail to get connected before the main process dies (possibly out of memory). But I doubt that this is the core reason.

 

As to the libpng problem, I realized that there is no libpng16 for Centos7 other than by that third party where it is but a minor part of the paid service they offer, and hardly a solution for you. But libpng does not seem to be a system breaking thing, so you might get a rpm or tarball from other distros, install it (e.g. with chroot) somewhere and add it to the LD_LIBRARY_PATH before starting your wurm launcher. Otherwise you may consider migrating to Centos8 but you may have reasons to stick with Centos7. Or just download libpng16 source from Centos8 and try to compile it on your box.

Share this post


Link to post
Share on other sites
On 12/17/2020 at 10:28 PM, Ekcin said:

I can't make sense of the strace snippet, and I know that strace output is huge and not very easy to interpret. It seems that a lot of subprocesses are spawned for some reason and fail to get connected before the main process dies (possibly out of memory). But I doubt that this is the core reason.

 

As to the libpng problem, I realized that there is no libpng16 for Centos7 other than by that third party where it is but a minor part of the paid service they offer, and hardly a solution for you. But libpng does not seem to be a system breaking thing, so you might get a rpm or tarball from other distros, install it (e.g. with chroot) somewhere and add it to the LD_LIBRARY_PATH before starting your wurm launcher. Otherwise you may consider migrating to Centos8 but you may have reasons to stick with Centos7. Or just download libpng16 source from Centos8 and try to compile it on your box.

 

I could not get the nvidia drivers to work on CentOS 8 and I needed a working operating system (I had been trying with multiple OSs at the time for quite a few hours). It would install, but then not boot. 

 

I can try the libpng thing, but in my experience this will turn out to just be the first of many, many missing or mismatched libraries, so it could just be another rabbit hole. 😕

 

Thank you for helping. 

 

-Michael

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this