LightZone on Slackware crashes at launch (SOLVED)


Posting rules: It shouldn't need saying, but... play nice. Please keep your discussions civil. You can disagree, just don't be disagreeable. And, of course, all of the usual stuff like no spamming. Tex adds: I'll be rigorously enforcing this as we go along. We're probably going to be a small community in a little lifeboat, so we can't have members at each others' throats. This is for the sake of the project as a whole. So when you post, pretend you're speaking in person with your very wealthy auntie who has always treated you wonderfully and currently lists you prominently in her will. I won't be tossing anyone out of the forums because we are all in this together (except spammers: immediate membership cancelation), but I'll delete suspect posts right away.


5 posts / 0 new
Last post
F9Race
LightZone on Slackware crashes at launch (SOLVED)

Hello to everyone!

This is my very first post here, and to be honest, I have little to no experience with serious photo processing in general or LightZone in particular. However, several years ago I bought a digital camera and now have a few thousands of RAW images that, up to now, haven't been seriously processed. However, opening them in ShowFoto, a tool that is included with Digikam, and applying just a couple of the functions leaving the default settings untouched already gave me evidence, how much more potential there is in RAW compared to JPEG. Now I am at a point where I would like to leverage that, and as other tools I have looked into seemed bloated or unintutitive to me I'd like to give LightZone a go.

 

LightZone on Slackware throws Java exception at launch

The first step to take is getting the program properly installed in my main system, which is Slackware64 (currently I am using 14.2-beta). There seem to be no Slackware packages available for Slackware, so I grabbed the LightZone 4.1.5 RPM packages for OpenSUSE 13.2 and Leap 42.1, and converted them with (first attempt) rpm2txz and (seconde attempt) src2pkg. Both times the conversion succeeded and a Slackware package is created without any errors. So I installed that package and tried to start LightZone.

However, every time I try to run the program, an error is thrown:

java.lang.NoClassDefFoundError: javax/help/HelpSetException
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:195)
        at com.lightcrafts.platform.Platform.<clinit>(Platform.java:405)
        at com.lightcrafts.platform.linux.LinuxLauncher.main(LinuxLauncher.java:36)
Caused by: java.lang.ClassNotFoundException: javax.help.HelpSetException
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 4 more

 

Homework I did before posting here

Of course, I have researched this forum and found a thread for this topic. However, that thread was more than year old, so I decided not to bump it and open a new one, instead. Still, if there is a solution that I have overlooked, (1) I apologise for that and (2) would be very grateful if you would would point me there. Also, if another LightZone forum should be more appropriate than this one, I'll be happy to move this thread over there. I just found that related topics were discussed here, so I started this one here, too.

 

Asking for help

As I got a very good impression of LightZone, when I tried it for an hour or so on an OpenSUSE system, where it installed and ran perfectly smooth, I definitely would like to get it running on my main system, too. So any help for the issue described above will be greatly appreciated!

F9Race

ktgw0316
I guess you haven't installed

I guess you haven't installed javahelp. I'm not sure, but if there is no javahelp package for Slackware, download a .jar file from Maven Central ( http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22javahelp%22 ) and place it somewhere in JRE classpath.

 

Hoe this helps,

 

Masahiro

F9Race
Thanks, Masahiro, that was it

Thanks, Masahiro, that was it!

One more question, though: What's the best way to include the JAR file in the JRE classpath?

I downloaded that file and added the path to it to the last line of the LightZone start script (/usr/bin/lightzone) to read:

(cd $pkgjavadir && LD_LIBRARY_PATH=$pkglibexecdir exec java -Xmx${maxmem}k -Djava.library.path=$pkglibexecdir -Dfile.encoding=UTF8 -classpath ".:$pkgjavadir/*:PATH_TO_javahelp-2.0.05.jar:$classdir" com.lightcrafts.platform.linux.LinuxLauncher ${file} ${@} )

I think there should be more elegant ways to achieve the desired result, but those I tried did not work. E. g., I thought of passing the classpath as a CLI parameter to the lightzone script, but to no avail (well, maybe, I didn't use the correct syntax, but maybe it doesn't work that way, at all).

So I am open for suggestions. For the moment, however, thank you for your very quick and useful response!

F9Race

ktgw0316
So far it's not possible to

So far it's not possible to pass the classpath as a parameter, but you need not modify the /usr/bin/lightzone if you place the jar in specific places: 

  • If you want to use a jar only for lightzone, place the jar under /usr/share/java/lightzone/
  • If you want to use it also from other programs, place it under one of the directories in $classpath defined in the /usr/bin/lightzone, for instance in /usr/share/java/

Check the lines 24-29 and 39 in the /usr/bin/lightzone for more detail.

 

BTW, it's great to know that LightZone works on Slackware. Thanks for your report.

 

Masahiro

F9Race
Thanks a lot, problem solved, your support is much appreciated!

Thanks a lot, this is much better! I copied javahelp-2.0.05.jar to /usr/share/java and reverted my changes to /usr/bin/lightzone, and LightZone works great, now, on my Slackware64-beta2 system. 

Most likely it will also run just fine on recent stable versions, too (I should mention that for Slackware "stable" means "almost indestructable", while "-current" or "-beta" is, what for other distros would be a "stable" release).

My first impressions that I got when I tried on an OpenSUSE system, are all confirmed. While there are now several very good RAW converters and a few quite good image processing programs available for Linux, e. g. Darktable, Photivo and RawTherapee, LightZone is the only one to combine both in one program in order to support a seamless workflow. And what is more: It is fast! How fast, must be a surprise for some stubborn Java critics...

Thanks for your kind support, much appreciated!

F9Race