todbot / blink1-java

blink(1) Java / Processing library
https://blink1.thingm.com/
Other
6 stars 4 forks source link

Crashes when requiring `java.awt.Color` on headless openjdk install in GUI #6

Open todbot opened 10 months ago

todbot commented 10 months ago

Trying to use blink1.setColor(Color) crashes because java.awt.Color does not exist if you've installed headless OpenJDK on Linux (e.g. sudo apt install openjdk-17-jdk-headless) and run in a GUI.

~/projects/blink1-java$ ./run-example.sh Example1
Looking for blink(1) devices...
blink(1) found: serial:3972f61f version:299
Fading to purple
Setting to green
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-17-openjdk-arm64/lib/libawt_xawt.so
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2398)
    at java.base/java.lang.Runtime.load0(Runtime.java:755)
    at java.base/java.lang.System.load(System.java:1953)
    at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
       [...]
    at java.desktop/java.awt.Toolkit.<clinit>(Toolkit.java:1397)
    at java.desktop/java.awt.Color.<clinit>(Color.java:277)
    at com.thingm.blink1.Example1.main(Example1.java:32)
todbot commented 10 months ago

The "solution" such that it is is to pass -Djava.awt.headless=true when invoking Java.