Linux java 17 opens and exports

I did a server upgrade and along with it ignition upgraded in the process. This caused the rasberry pi machines that we use to fail loading the vision client. The error were receiving is

Error Launching applicaiton:
ValidationException: JPMS module
opens/export check failed! check your
--add-opens and --add-exports clauses

Anyone have any knowledge on the fix for this been trying to troubles shoot it for a day now and still cant wrap my head around it.

Inside the legacyClient.sh script there is probably a line like this:

JAVA_ARGS=""

try changing that to:

JAVA_ARGS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.desktop/javax.swing.tree=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.synth=ALL-UNNAMED --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.desktop/javax.swing.tree=ALL-UNNAMED --add-exports=java.base/sun.security.action=ALL-UNNAMED --add-exports=java.desktop/com.apple.eawt=ALL-UNNAMED --add-exports=java.desktop/com.sun.awt=ALL-UNNAMED --add-exports=java.desktop/com.sun.java.swing.plaf.windows=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.awt.image=ALL-UNNAMED --add-exports=java.desktop/sun.awt.shell=ALL-UNNAMED --add-exports=java.desktop/sun.awt.windows=ALL-UNNAMED --add-exports=java.desktop/sun.swing=ALL-UNNAMED --add-exports=java.desktop/sun.swing.plaf.synth=ALL-UNNAMED --add-exports=java.desktop/sun.swing.table=ALL-UNNAMED --add-exports=java.desktop/sun.print=ALL-UNNAMED"

no idea if this will work. The unsupported 32-bit client scenario became a little more unsupported with the JDK 17 upgrade.

1 Like

Thank you that fixed the issue. we are running 64-bit ARM for the pi's however, dont know if that matters in this situation.

Shouldn't matter, I'd expect this to work on 32-bit ARM as well if anybody from the future finds this. Just need to have the right JDK installed.

1 Like

This did work, I found it easiest to add it to a launch arguments file and call it in the launch bat file in a 32bit windows installation rather than modifying the legacyClient.sh script.

The launch bat file:

C:\Users\USER\Desktop\legacyClient.bat http://IP.AD.DR.ESS:8088 C PROJ_NAME F C:\Users\USER\Desktop\LaunchArgsIgnition.txt

The entire contents of LaunchArgsIgnition.txt:

--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-opens=java.desktop/java.awt.event=ALL-UNNAMED --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.desktop/javax.swing.tree=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED --add-opens=java.desktop/javax.swing.plaf.synth=ALL-UNNAMED --add-opens=java.desktop/javax.swing=ALL-UNNAMED --add-opens=java.desktop/javax.swing.tree=ALL-UNNAMED --add-exports=java.base/sun.security.action=ALL-UNNAMED --add-exports=java.desktop/com.apple.eawt=ALL-UNNAMED --add-exports=java.desktop/com.sun.awt=ALL-UNNAMED --add-exports=java.desktop/com.sun.java.swing.plaf.windows=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-exports=java.desktop/sun.awt.image=ALL-UNNAMED --add-exports=java.desktop/sun.awt.shell=ALL-UNNAMED --add-exports=java.desktop/sun.awt.windows=ALL-UNNAMED --add-exports=java.desktop/sun.swing=ALL-UNNAMED --add-exports=java.desktop/sun.swing.plaf.synth=ALL-UNNAMED --add-exports=java.desktop/sun.swing.table=ALL-UNNAMED --add-exports=java.desktop/sun.print=ALL-UNNAMED

I have a Java 17 jdk installed on the clients as well. Just updated to Ignition 8.1.36 from 8.1.24.

4 posts were merged into an existing topic: Error running legacy launcher