Quantcast
Channel: Debian User Forums
Viewing all articles
Browse latest Browse all 3260

General Questions • [Software] Old Java Web Start Application Fails to Initialize with IcedTea and OpenJDK 8

$
0
0
I manage a lot of old servers that have Supermicro motherboards. They provide a remote console (Aten iKVM) in the form of a Java Web Start application (JNLP file), which requires a particularly old version of the JRE. Until recently, I was successfully using IcedTea on Debian 10 to run the KVM console. I had to replace that laptop due to a hardware problem, so I'm now trying to make the KVM console function properly on Debian 12.5. It's practically the same task as described in this post from @cogitech a few months ago. Unfortunately, I haven't been able to get it to work yet. I think I know what the problem is, but I don't have enough experience troubleshooting Java applications to be certain.

I have installed icedtea-netx and nvidia-openjdk-8-jre:

Code:

$ apt-cache policy icedtea-netx nvidia-openjdk-8-jre icedtea-netx:  Installed: 1.8.8-2  Candidate: 1.8.8-2  Version table: *** 1.8.8-2 500        500 http://deb.debian.org/debian bookworm/main amd64 Packages        100 /var/lib/dpkg/statusnvidia-openjdk-8-jre:  Installed: 9.+8u372-ga-1~11.8.0-5~deb12u1  Candidate: 9.+8u372-ga-1~11.8.0-5~deb12u1  Version table: *** 9.+8u372-ga-1~11.8.0-5~deb12u1 500        500 http://deb.debian.org/debian bookworm/non-free amd64 Packages        100 /var/lib/dpkg/status
I used itweb-settings to set deployment.jre.dir in ~/.config/icedtea-web/deployment.properties to the OpenJDK 8 directory (/usr/lib/jvm/java-8-openjdk-amd64/jre). With this configuration, javaws can run the JNLP and it downloads the two required JARs into its cache, iKVM__V1.69.27.0x0.jar.pack.gz and liblinux_x86_64__V1.0.8.jar.pack.gz. But the application fails to initialize. If I look at the Java console or run JNLP in a terminal (javaws -verbose launch.jnlp), I think I see the cause of the problem:

Code:

Downloading file: https://brody-ipmi:443/liblinux_x86_64__V1.0.8.jar.pack.gz into: /home/rotero/.cache/icedtea-web/cache/4/https/brody-ipmi/443/liblinux_x86_64__V1.0.8.jar.pack.gz<snip>Downloading file: https://brody-ipmi:443/iKVM__V1.69.27.0x0.jar.pack.gz into: /home/rotero/.cache/icedtea-web/cache/5/https/brody-ipmi/443/iKVM__V1.69.27.0x0.jar.pack.gz<snip>java.lang.UnsupportedOperationException: Pack200 compression is no longer supported, cannot unpack https://brody-ipmi:443/liblinux_x86_64__V1.0.8.jar.pack.gz        at net.sourceforge.jnlp.cache.ResourceDownloader.uncompressPackGz(ResourceDownloader.java:502)        at net.sourceforge.jnlp.cache.ResourceDownloader.downloadPackGzFile(ResourceDownloader.java:400)        at net.sourceforge.jnlp.cache.ResourceDownloader.downloadResource(ResourceDownloader.java:364)        at net.sourceforge.jnlp.cache.ResourceDownloader.run(ResourceDownloader.java:117)        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)        at java.lang.Thread.run(Thread.java:750)Disconnecting sun.net.www.protocol.https.DelegateHttpsURLConnection:https://brody-ipmi:443/liblinux_x86_64__V1.0.8.jar.pack.gzRemoved sun.net.www.protocol.https.DelegateHttpsURLConnection:https://brody-ipmi:443/liblinux_x86_64__V1.0.8.jar.pack.gzjava.lang.UnsupportedOperationException: Pack200 compression is no longer supported, cannot unpack https://brody-ipmi:443/iKVM__V1.69.27.0x0.jar.pack.gz        at net.sourceforge.jnlp.cache.ResourceDownloader.uncompressPackGz(ResourceDownloader.java:502)        at net.sourceforge.jnlp.cache.ResourceDownloader.downloadPackGzFile(ResourceDownloader.java:400)        at net.sourceforge.jnlp.cache.ResourceDownloader.downloadResource(ResourceDownloader.java:364)        at net.sourceforge.jnlp.cache.ResourceDownloader.run(ResourceDownloader.java:117)        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)        at java.lang.Thread.run(Thread.java:750)Disconnecting sun.net.www.protocol.https.DelegateHttpsURLConnection:https://brody-ipmi:443/iKVM__V1.69.27.0x0.jar.pack.gzRemoved sun.net.www.protocol.https.DelegateHttpsURLConnection:https://brody-ipmi:443/iKVM__V1.69.27.0x0.jar.pack.gzJAR https://brody-ipmi:443/iKVM__V1.69.27.0x0.jar not found. Continuing.<snip>JAR https://brody-ipmi:443/liblinux_x86_64__V1.0.8.jar not found. Continuing.<snip>netx: Initialization Error: Could not initialize application. (Fatal: Initialization Error: Unknown Main-Class. Could not determine the main class for this application.)net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize application. The application has not been initialized, for more information execute javaws from the command line.        at net.sourceforge.jnlp.Launcher.createApplication(Launcher.java:823)        at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:531)        at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:946)Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Unknown Main-Class. Could not determine the main class for this application.        at net.sourceforge.jnlp.runtime.JNLPClassLoader.initializeResources(JNLPClassLoader.java:775)        at net.sourceforge.jnlp.runtime.JNLPClassLoader.<init>(JNLPClassLoader.java:337)        at net.sourceforge.jnlp.runtime.JNLPClassLoader.createInstance(JNLPClassLoader.java:420)        at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:494)        at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:467)        at net.sourceforge.jnlp.Launcher.createApplication(Launcher.java:815)        ... 2 more
It seems to me that javaws can't decompress the application's JARs because "Pack200 compression is no longer supported." I found Debian bug report #1061060, which implies that Pack200 support was removed from the javaws program provided by icedtea-netx:
In some more recent update of icedtea-netx, I can't determine which, exactly, the pack200 libs must have been removed from javaws.jar.

Even recent system boards from Supermicro ship their JAR libs as .jar.pack.gz files. I know, it's deprecated for ages, but tell it to them. Even if they change it now, they won't update older firmwares and there are plenty around, not only on server boards, but all kinds of enterprise equipment still running somewhere.
Have I diagnosed this correctly? Is there anything I can do about it? I could probably get an old version of icedtea-netx from a previous Debian release, but I strongly prefer not to make a "Frankendebian…"

Statistics: Posted by rotero — 2024-04-01 20:29 — Replies 0 — Views 18



Viewing all articles
Browse latest Browse all 3260

Trending Articles