#990534 arduino: Arduino-IDE not starting witch Cinnamon Desktop.

Package:
arduino
Source:
arduino
Description:
AVR development board IDE from Arduino CC
Submitter:
Sven Wagner
Date:
2022-03-13 22:09:03 UTC
Severity:
important
Tags:
#990534#5
Date:
2021-07-01 13:53:24 UTC
From:
To:
Dear Maintainer,

   * What led up to the situation?

If I click on the icon of arduino, nothing is happening. In top I see only
for a short moment something with Java.

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

After starting from icon was not working, i tried starting from Mate-Terminal.
Result was the following message, before returning to prompt:

Picked up JAVA_TOOL_OPTIONS:
Set log4j store directory /home/sven/.arduino15
java.lang.UnsatisfiedLinkError: no splashscreen in java.library.path
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
	at java.lang.Runtime.loadLibrary0(Runtime.java:870)
	at java.lang.System.loadLibrary(System.java:1124)
	at java.awt.SplashScreen$1.run(SplashScreen.java:124)
	at java.awt.SplashScreen$1.run(SplashScreen.java:122)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.SplashScreen.getSplashScreen(SplashScreen.java:121)
	at processing.app.Base.<init>(Base.java:237)
	at processing.app.Base.main(Base.java:141)


   * What was the outcome of this action?

Nothing

   * What outcome did you expect instead?

That program is starting

#990534#10
Date:
2021-07-03 10:26:55 UTC
From:
To:
Control: tags -1 + moreinfo unreproducible

Hi Sven, thanks for reporting. Sadly, I'm unable to reproduce the
stated behaviour. Wild guess would be that you are missing one of the
Java native libraries somehow. I would suggest:

 1. Reinstall package 'openjdk-11-jre'. The report says you've got it
already installed but people with a similar error were missing that
particular package [1].

 2. Reinstall packages 'arduino' and 'arduino-avr-core'. Maybe a
misconfigured arduino app is looking at the wrong places?

 3. Try installing 'openjdk-11-jdk' if it is not already there. Maybe
the arduino package is missing a dependency?


[1]: https://stackoverflow.com/a/63037561

#990534#17
Date:
2021-07-05 08:09:56 UTC
From:
To:
Control: tags -1 + help

Hi Sven, I'm out of ideas here then. Thanks for trying.

Dear Java team, could you please comment on what could be causing the
reported error [1]? I'm unable to reproduce it and maybe you come up
with some ideas to troubleshoot?

[1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=990534#5


Thanks a lot,

#990534#24
Date:
2021-07-05 14:25:35 UTC
From:
To:
Hi,

Am 05.07.21 um 10:09 schrieb Rock Storm:

the starting wrapper /usr/bin/arduino is simply using 'java' as the
binary name to call the JRE binary but does not check if the binary in
the path is usable or suitable.
----%<---- ---->%---- Sven, you could please check where /u/b/java is pointing to? It should look like this. I've recently discovered similar problems elsewhere and I needed to reinstall the openjdk packages. So it's possible that some symlinking isn't correct. It's also possible that something is changing the variable JAVA_OPTIONS that is finally used in the wrapper. You can simply add a line like this right before the last line in the wrapper script. Then please call arduino again from CLI.
#990534#29
Date:
2021-07-05 16:01:36 UTC
From:
To:
You can also use 「readlink -f $(which java)」, which finds
the java binary from $PATH. Do also manually inspect the
output of 「which -a java」 which shows all java binaries
reachable from $PATH, and whether any of the environment
variables, like $JAVA_HOME, are set (they shouldn’t, in a
normal Debian installation with one JRE installed).

You should use update-java-alternatives for that.
	echo "Using JAVA_OPTIONS: ${JAVA_OPTIONS[*]}"

bye,
//mirabilos

#990534#34
Date:
2021-07-10 09:25:06 UTC
From:
To:
Hello Sven,

please use Reply All so the BTS and all participants will get involved
into the message flow.

Am 05.07.21 um 21:35 schrieb Sven Wagner:

I expecting something like this, at least that somehow openjdk-8 was the
root of this problem.
We need to narrow down if openjdk-8-jre is really the problem and how to
ensure users have also installed openjdk-11-jre to get Arduino IDE working.

#990534#39
Date:
2021-07-10 16:40:32 UTC
From:
To:
Or 17?

If you need to ensure a minimum version, do this (/bin/sh-safe):


if test "$(java -XshowSettings:properties -version 2>&1 | \
    sed -n '/^    java.version = \([0-9]*\)\..*$/s//\1/p')" -lt 11; then
	echo >&2 "E: Either no JRE found or JRE too old (<11):"
	java -version
	exit 1
fi


The command substitution evaluates to the first number before
a period in the version, which is either 1 (from 1.8.x) or 8
for JRE 8, 11 for JRE 11, and obviously larger for later ones.
If none, it evaluates to empty, which test … -lt interprets as
zero which will also work.

Please submit this to the Arduino IDE maintainer.

bye,
//mirabilos

#990534#44
Date:
2022-03-13 21:59:35 UTC
From:
To:
Dear Maintainer,

I'trying to run the arduino-ide. Launching it from the menu did not
work,
I had version 2:1.8.13+dfsg1-2 . Now I updated to version
2:1.8.19+dfsg1-1,
but nothing changed.

Reading the conversation, I did the following:
# apt install openjdk-11-jre
# apt install openjdk-11-jdk

But I keep on receiving:

$ arduino
Picked up JAVA_TOOL_OPTIONS:
java.lang.UnsatisfiedLinkError: no splashscreen in system library path:
/usr/lib/jvm/java-17-openjdk-amd64/lib
         at
java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2397)
         at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:808)
         at java.base/java.lang.System.loadLibrary(System.java:1893)
         at
java.desktop/java.awt.SplashScreen$1.run(SplashScreen.java:134)
         at
java.desktop/java.awt.SplashScreen$1.run(SplashScreen.java:132)
         at
java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
         at
java.desktop/java.awt.SplashScreen.getSplashScreen(SplashScreen.java:131)
         at processing.app.Base.<init>(Base.java:231)
         at processing.app.Base.main(Base.java:141)

I did check the following:
$ which -a java
/usr/bin/java
/bin/java
$ ls -la /usr/bin/java
lrwxrwxrwx 1 root root 22 Jul 17  2021 /usr/bin/java ->
/etc/alternatives/java
$ ls -la /bin/java
lrwxrwxrwx 1 root root 22 Jul 17  2021 /bin/java ->
/etc/alternatives/java
$ ls -la /etc/alternatives/java
lrwxrwxrwx 1 root root 43 Feb  4 09:28 /etc/alternatives/java ->
/usr/lib/jvm/java-17-openjdk-amd64/bin/java
$ echo "Using JAVA_OPTIONS: ${JAVA_OPTIONS[*]}"
Using JAVA_OPTIONS:

Somewhere on the net I found some hints suggeting to avoid using
"-headless" java,
but I do not know how I can choose...

Regards,
mb