TeX-Live / tlcockpit

GUI for tlmgr written in Scala
GNU General Public License v3.0
27 stars 2 forks source link

JNI Issue #1

Closed ralphrmartin closed 6 years ago

ralphrmartin commented 7 years ago

I have java version "1.8.0_144" I still get the following error (on MacOS X)

$ tlcockpit Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/mutable/Buffer at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) at java.net.URLClassLoader.access$100(URLClassLoader.java:73) at java.net.URLClassLoader$1.run(URLClassLoader.java:368) at java.net.URLClassLoader$1.run(URLClassLoader.java:362) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:361) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:411) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateGetMethodRecursive(Class.java:3048) at java.lang.Class.getMethod0(Class.java:3018) at java.lang.Class.getMethod(Class.java:1784) at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) Caused by: java.lang.ClassNotFoundException: scala.collection.mutable.Buffer at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 20 more

I'm happy to provide further information or otherwise to try to help debug this.

ralphrmartin commented 7 years ago

For what it's worth I also have installed: Scala code runner version 2.12.3 -- Copyright 2002-2017, LAMP/EPFL and Lightbend, Inc.

norbusan commented 7 years ago

Hi Ralph, that error I haven't seen before. How do you start tlcockpit? Via the normal runner of the TeX Live installation? Or via java -jar .../tlcockpit.jar? Or some other method?

ralphrmartin commented 7 years ago

Hi Norbert

On 6 Sep 2017, at 00:15, Norbert Preining notifications@github.com wrote:

that error I haven't seen before. How do you start tlcockpit? Via the normal runner of the TeX Live installation? Or via java -jar .../tlcockpit.jar? Or some other method?

Just by typing tlcockpit on the command line. (I'm on MacOS X by the way).

Ralph

norbusan commented 7 years ago

Ok, tried it on my own MacMini and see different problems. Deploying ScalaFX apps is a PITA. Will investigate, thanks for the report!

norbusan commented 7 years ago

Found the problem ... The java interpreter in the PATH is an old version shipped by Apple, and is not what you see as being installed in the Java Console. I checked by myself and had the same error.

For details see the second answer here: https://stackoverflow.com/questions/12757558/installed-java-7-on-mac-os-x-but-terminal-is-still-using-version-6 (the one with the most votes!).

I am not sure how to deal with that, I will see whether I can add some intelligent guessing in the run script.

norbusan commented 7 years ago

Also, here is an answer from Oracle: https://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_install_faq.html#osxfaq_java_cmd_line One needs to install the JDK if one wants automatic setup

I have Oracle's version of the JRE installed, but when I try to run the java command from the command line, it does not work

Installing a JRE from Oracle does not update java -version symlinks or add the java command to your path. For this functionality, you must install the full JDK.

ralphrmartin commented 7 years ago

On 7 Sep 2017, at 07:22, Norbert Preining notifications@github.com wrote:

Found the problem ... The java interpreter in the PATH is an old version shipped by Apple, and is not what you see as being installed in the Java Console. I checked by myself and had the same error.

For details see the second answer here: https://stackoverflow.com/questions/12757558/installed-java-7-on-mac-os-x-but-terminal-is-still-using-version-6 (the one with the most votes!).

I am not sure how to deal with that, I will see whether I can add some intelligent guessing in the run script.

I dont think that's quite it, as I get

java -version java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01) Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

but I do also have a java 1.6 installed (required for some old software).

Prof. Ralph Martin Plas Pont y Cribyn Llannor LL53 8LZ

http://www.rrm.me.uk

ralphrmartin commented 7 years ago

On 7 Sep 2017, at 07:24, Norbert Preining notifications@github.com wrote:

Also, here is an answer from Oracle: https://docs.oracle.com/javase/8/docs/technotes/guides/install/mac_install_faq.html#osxfaq_java_cmd_line One needs to install the JDK if one wants automatic setup

I have Oracle's version of the JRE installed, but when I try to run the java command from the command line, it does not work

Installing a JRE from Oracle does not update java -version symlinks or add the java command to your path. For this functionality, you must install the full JDK.

I do have the full JDK installed.

Prof. Ralph Martin Plas Pont y Cribyn Llannor LL53 8LZ

http://www.rrm.me.uk

norbusan commented 7 years ago

Hmm, interesting. I tried it on my Mac and after installing the latest java (same as yours) I had no problems running it. Which version of OSX are you running? Mine is quite old (OS X Yosemite 10.10.5)

ralphrmartin commented 7 years ago

On 7 Sep 2017, at 14:02, Norbert Preining notifications@github.com wrote:

Hmm, interesting. I tried it on my Mac and after installing the latest java (same as yours) I had no problems running it. Which version of OSX are you running? Mine is quite old (OS X Yosemite 10.10.5)

10.13 :-)

norbusan commented 7 years ago

Hmm, as long as I don't access to a machine like this I will not be able to debug it, sorry.

ralphrmartin commented 6 years ago

On 11 Sep 2017, at 09:39, Norbert Preining notifications@github.com wrote:

Hmm, as long as I don't access to a machine like this I will not be able to debug it, sorry.

Happens on 10.12 too.

Ralph

norbusan commented 6 years ago

As said, I cannot reproduce it locally, and I am rewriting the current version anyway as it has a non-responsive GUI when tlmgr is running a command. So until the rewrite with Akka is done, better not to test anything ;-)

ralphrmartin commented 6 years ago

Just installed JDK 9, and tlcockpit seems to run OK on MacOS 10.13.

norbusan commented 6 years ago

So then it probably was an issue with the installation or installation JAVA_PATH or similar ;-) Thanks for testing with JDK9.

norbusan commented 6 years ago

So can we settle that?

ralphrmartin commented 6 years ago

On 28 Sep 2017, at 06:09, Norbert Preining notifications@github.com wrote:

So can we settle that?

I guess so.

norbusan commented 6 years ago

Thanks, closing it. BTW, I just pushed big set of changes to github, you might try if it still run ;-) Just grab the jar and replace the one in the TL installation.

ralphrmartin commented 6 years ago

On 28 Sep 2017, at 07:27, Norbert Preining notifications@github.com wrote:

Thanks, closing it. BTW, I just pushed big set of changes to github, you might try if it still run ;-) Just grab the jar and replace the one in the TL installation.

Just tried the new version released in texlive, and it seems to run OK. :-) Java 9, MacOS X 10.13.1 (beta).

Ralph

norbusan commented 6 years ago

Thanks for checking!