This question is answered. Helpful answers available: 2. Correct answers available: 1.


Permlink Replies: 12 - Pages: 1 - Last Post: 24-Jan-2020 07:48 Last Post By: karlmistelberger Threads: [ Previous | Next ]
hp-bilder

Posts: 14
Registered: 15-Feb-2013
Jalbum does not start on Manjaro Linux
Posted: 11-Jan-2020 12:20
 
  Click to reply to this thread Reply
Hi,

after some month i startet Jalbum which informed me about an update. I used the latest zip File, but it does not start any longer. Going back to an older version did not help. It might be that my Java installation is faulty, but i don't know what to do now.
System is Manjaro Linux, java is Open JDK 13.0.
[hph@hackbrett4 ~]$ java --version
openjdk 13.0.1 2019-10-15
OpenJDK Runtime Environment (build 13.0.1+9)
OpenJDK 64-Bit Server VM (build 13.0.1+9, mixed mode)
[hph@hackbrett4 ~]$ java -jar ~/Programme/jAlbum/JAlbum.jar 
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by se.datadosen.jalbum.Config (file:/home/hph/Programme/jAlbum/lib/jalbum-core.jar) to method sun.swing.SwingUtilities2.checkAccess(int)
WARNING: Please consider reporting this to the maintainers of se.datadosen.jalbum.Config
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
java.lang.NoClassDefFoundError: javafx/beans/binding/BooleanExpression
	at se.datadosen.jalbum.SplashScreen.<init>(SplashScreen.java:39)
	at se.datadosen.jalbum.JAlbum.<init>(JAlbum.java:111)
	at se.datadosen.jalbum.JAlbum.main(JAlbum.java:369)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
	at se.datadosen.jalbum.Main.main(Main.java:45)
Caused by: java.lang.ClassNotFoundException: javafx.beans.binding.BooleanExpression
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:436)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
	... 8 more


Following the threads https://jalbum.net/forum/thread.jspa?messageID=317109&#317109 and https://jalbum.net/forum/thread.jspa?messageID=310128&#310128 and others did not help.
JavaFX is installed, starting with full path says:
[hph@hackbrett4 ~]$ /usr/bin/java --module-path /usr/lib/jvm/java-13-openjdk/lib/ --add-modules=javafx.graphics,javafx.swing,javafx.web -jar /home/hph/Programme/jAlbum/JAlbum.jar
Error occurred during initialization of boot layer
java.lang.LayerInstantiationException: Package jdk.internal.jimage.decompressor in both module java.base and module jrt.fs


Any hints?

Above output is from JAlbum 18.4, but the newest version brings the same messages.

HP
waldbaer59

Posts: 2
Registered: 9-Jan-2008
Re: Jalbum does not start on Manjaro Linux
Posted: 14-Jan-2020 14:52   in response to: hp-bilder in response to: hp-bilder
 
  Click to reply to this thread Reply
This is also true for Arch Linux, so I hopefully join this thread.

[XXXXXX@Cirrus7 jAlbum]$ ./startjalbum.sh 
.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by se.datadosen.jalbum.Config (file:/home/XXXXXX/jAlbum/./lib/jalbum-core.jar) to method sun.swing.SwingUtilities2.checkAccess(int)
WARNING: Please consider reporting this to the maintainers of se.datadosen.jalbum.Config
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
java.lang.NoClassDefFoundError: javafx/beans/binding/BooleanExpression
	at se.datadosen.jalbum.SplashScreen.<init>(SplashScreen.java:39)
	at se.datadosen.jalbum.JAlbum.<init>(JAlbum.java:111)
	at se.datadosen.jalbum.JAlbum.main(JAlbum.java:370)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
	at se.datadosen.jalbum.Main.main(Main.java:45)
Caused by: java.lang.ClassNotFoundException: javafx.beans.binding.BooleanExpression
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:436)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
	... 8 more


In my installation there is:
extra/jre-openjdk 13.0.1.u9-1
extra/jre-openjdk-headless 13.0.1.u9-1
extra/java-openjfx 13.u14-1

... so it should work. Going to java-8-openjdk makes jAlbum start, but afterwards I get problems with skins that need newer Java versions.

So I hope we can nail the problem here ...
Besides: It's version 19.2 of jAlbum.

Best regards
Stephan

Edited by: waldbaer59 on 14-Jan-2020 14:53
davidekholm

Posts: 3,158
Registered: 18-Oct-2002
Re: Jalbum does not start on Manjaro Linux
Posted: 14-Jan-2020 16:27   in response to: hp-bilder in response to: hp-bilder
 
  Click to reply to this thread Reply
Hi hp-bilder, your --module-path should point to the "lib" folder of the JavaFX SDK and not the main Java's lib folder. On my Mac I use --module-path=/Library/Java/javafx-sdk-13/lib. You can get the JavaFX SDK from https://gluonhq.com/products/javafx/
(Go for the SDK, not the JMODS format for your platform. The JMODS format is for linking your own runtime.
davidekholm

Posts: 3,158
Registered: 18-Oct-2002
Re: Jalbum does not start on Manjaro Linux
Posted: 14-Jan-2020 16:39   in response to: waldbaer59 in response to: waldbaer59
 
  Click to reply to this thread Reply
waldbaer59 wrote:
This is also true for Arch Linux, so I hopefully join this thread.

Your problem is different. The startjAlbum-sh file of the zip archive will only work if you either use a Java that is pre-linked with JavaFX (our bundled ones are) or manually refer to the "lib" folder of the OpenJFX SDK via a --module-path parameter. You also need to use the --add-modules and specify the 3 JavaFX modules that jAlbum relies on. For a complete example from my Mac, see here:
/Library/Java/JavaVirtualMachines/jdk-13.0.1.jdk/Contents/Home/bin/java --module-path=/Library/Java/javafx-sdk-13/lib --add-modules javafx.graphics,javafx.swing,javafx.web -Xmx2000M -jar ~/Projects/JAlbum/JAlbum.jar 


I'm sorry it has become so complicated, but Oracle decided to make the JavaFX module, which was part of Java, an external module. For the non zip releases we bundle a pre-linked Java. With that one, there is no need to fiddle with --add-modules and --module-path.

If you like to roll your own pre-linked Java to run jAlbum on, you can use the jlink command. Here's how we pre-link the Linux Java using jlink:
#/bin/bash
VER=13.0.1
JDKPATH=jdk-${VER}
JREPATH=jre-${VER}-mini
rm -rf ${JREPATH}
 
${JDKPATH}/bin/jlink -J-Xmx4g --strip-debug --module-path ${JDKPATH}/jmods:javafx-jmods-${VER} --add-modules java.base,java.compiler,java.datatransfer,java.desktop,java.logging,java.prefs,java.scripting,java.xml,javafx.base,javafx.controls,javafx.fxml,javafx.graphics,javafx.media,javafx.swing,javafx.web,jdk.dynalink,jdk.internal.le,jdk.jsobject,jdk.scripting.nashorn.shell,jdk.scripting.nashorn,jdk.xml.dom,jdk.unsupported.desktop,jdk.charsets,jdk.localedata,jdk.crypto.cryptoki,jdk.crypto.ec,java.management --output ${JREPATH}
 
waldbaer59

Posts: 2
Registered: 9-Jan-2008
Re: Jalbum does not start on Manjaro Linux
Posted: 14-Jan-2020 18:32   in response to: hp-bilder in response to: hp-bilder
 
  Click to reply to this thread Reply
Thank You very much! Now it is up and running.

It was not completely easy though, as there was one further problem. jAlbum first didn't want to start due to a collision with jrt-fs.jar which was within the openjfx-module-directory.
So I copied all necessary openjfx module files into the (from me created) 'modules' subdirectory in the jAlbum-programm directory and adapted the starting command.

I know: it's the 'I'm hammering it into the computer' method, but it works for now. I'll have to keep an eye on it. Maybe I'll get it done in a better way.

For now I'm happy. :)

Best regards
Stephan

Edited by: waldbaer59 on 14-Jan-2020 20:51
hp-bilder

Posts: 14
Registered: 15-Feb-2013
Re: Jalbum does not start on Manjaro Linux
Posted: 15-Jan-2020 21:09   in response to: waldbaer59 in response to: waldbaer59
 
  Click to reply to this thread Reply
I was not yet lucky (tried with oracle and older versions). I will now try what you all proposed, which is in line with the reply i got from the same question in the Manjaro forum:
https://forum.manjaro.org/t/java-installation-faulty-jalbum-does-not-start-anymore/118938/5
I will try over the weekend and - if it works - will tell you.

HP
BTW: any chance to get an appimage for Linux?
davidekholm

Posts: 3,158
Registered: 18-Oct-2002
Re: Jalbum does not start on Manjaro Linux
Posted: 16-Jan-2020 18:14   in response to: hp-bilder in response to: hp-bilder
 
  Click to reply to this thread Reply
hp-bilder wrote:

BTW: any chance to get an appimage for Linux?

Interesting... I'll look into that!
hp-bilder

Posts: 14
Registered: 15-Feb-2013
Re: Jalbum does not start on Manjaro Linux
Posted: 17-Jan-2020 20:52   in response to: davidekholm in response to: davidekholm
 
  Click to reply to this thread Reply
Following an advice from the Manjaro forum, i downloaded Liberica Java (https://bell-sw.com/pages/java-13.0.1/, renamed ib/jrt-fs.jar and jAlbum starts again. A short test, modifying an existing album, build an upload, worked fine. So for now i can work again.

There however some error messages on the command line:
[hph@hackbrett4 Programme]$ jdk-13.0.1/bin/java --module-path jdk-13.0.1/lib/ --add-modules=javafx.graphics,javafx.swing,javafx.web -jar jAlbum/JAlbum.jar 
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by se.datadosen.jalbum.Config (file:/home/hph/Programme/jAlbum/lib/jalbum-core.jar) to method sun.swing.SwingUtilities2.checkAccess(int)
WARNING: Please consider reporting this to the maintainers of se.datadosen.jalbum.Config
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release


HP
jGromit

Posts: 6,771
Registered: 31-Jan-2006
Re: Jalbum does not start on Manjaro Linux
Posted: 17-Jan-2020 21:23   in response to: hp-bilder in response to: hp-bilder
 
  Click to reply to this thread Reply
That's not an error. Those are just warnings about a future direction of Java development.
davidekholm

Posts: 3,158
Registered: 18-Oct-2002
Re: Jalbum does not start on Manjaro Linux
Posted: 21-Jan-2020 18:04   in response to: jGromit in response to: jGromit
 
  Click to reply to this thread Reply
... and hard to fix until the Darcula Look & Feel we're using gets updated to comply with Java 13
karlmistelberger

Posts: 214
Registered: 5-Dec-2013
Re: Jalbum does not start on Manjaro Linux
Posted: 23-Jan-2020 08:11   in response to: hp-bilder in response to: hp-bilder
 
  Click to reply to this thread Reply
hp-bilder wrote:
I was not yet lucky (tried with oracle and older versions). I will now try what you all proposed, which is in line with the reply i got from the same question in the Manjaro forum:
https://forum.manjaro.org/t/java-installation-faulty-jalbum-does-not-start-anymore/118938/5
I will try over the weekend and - if it works - will tell you.

HP
BTW: any chance to get an appimage for Linux?


Never considered using an appimage. Both the bundled and packaged as well as the zipped versions run without further ado on all Linux versions I am currently testing on my machines:

 erlangen:~ # os-prober
/dev/nvme0n1p1:Fedora 31 (Workstation Edition):Fedora:linux
/dev/nvme0n1p2:openSUSE Tumbleweed:openSUSE:linux
/dev/sda1:Manjaro Linux (18.1.3):ManjaroLinux:linux
/dev/sda2:openSUSE Leap 15.1:openSUSE:linux
/dev/sdb2:Arch Linux:Arch:linux
/dev/sdb3:SUSE Linux Enterprise Desktop 12 SP3:SLED:linux
/dev/sdb6:Ubuntu 19.10 (19.10):Ubuntu:linux
erlangen:~ # 
Users may consider to modify their program starters: https://jalbum.net/help/en/Manuals/Users:kmistelberger/Installation#Invocation

The zipped version requires installation of JavaFX: https://gluonhq.com/products/javafx/
hp-bilder

Posts: 14
Registered: 15-Feb-2013
Re: Jalbum does not start on Manjaro Linux
Posted: 23-Jan-2020 21:23   in response to: karlmistelberger in response to: karlmistelberger
 
  Click to reply to this thread Reply
Thanks for replying,
but as said in a previous mail, i was out of luck with Manjaro java. But using Liberica Java, it runs. I don't blame the jalbum developers, it might be my fault. And yes, i tried your starter tipp and in fact use it for the new java installation.
Appimage would have the advantage that the developers can provide a well tested version which runs on any recent Linux, no need to provide rpm or deb versions and thus, effort is less. Download size however is larger.

HP
karlmistelberger

Posts: 214
Registered: 5-Dec-2013
Re: Jalbum does not start on Manjaro Linux
Posted: 24-Jan-2020 07:48   in response to: hp-bilder in response to: hp-bilder
 
  Click to reply to this thread Reply
hp-bilder wrote:
i was out of luck with Manjaro java. But using Liberica Java, it runs.

Liberica is reliable stuff. The folks at Bellsoft are offering great services: https://bell-sw.com/pages/services/

An alternative solution is using pacman to install package java-openjfx.

Appimage would have the advantage that the developers can provide a well tested version which runs on any recent Linux

Appimages do run on pretty every recent distribution. However contrary to popular belief they are not well tested. They are a crude trick to skip system integration and they are harmful to maintenance.

Download size however is larger.

Download size is only the tip of the iceberg. Running several appimages at the same time will cause disk cache trashing.

Appimages should be considered as a perfect temporary workaround for packaging problems.
Legend
Forum admins
Helpful Answer
Correct Answer

Point your RSS reader here for a feed of the latest messages in all forums