you are right this is not obvious! The Java based tools are not available as official Debian packages because of an long standing issue with the use of JacORB which has a licence which is not compatible with Debian. The licence will not be changed because it depends on some code from the OMG which it has stopped supporting i.e. will not change.
What I do on my laptop is to install the source code package of Tango which install jive and all the other java based tools as well. You can find the source code here: Download tango-9.2.5a.tar.gz (TANGO Control System)
I would still use the binary packages for the libraries and database server.
Providing binary Jive packages on bintray is on our TODO list. If someone wants to help us that would be great!
Hej, I was just trying to get Jive running on Linux Mint 19 Beta system but got the following error when using the deb-package (installation without problems):
Exception in thread "main" java.lang.NoClassDefFoundError: javax/rmi/CORBA/Stub
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1009)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:801)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:699)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:622)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
at org.jacorb.orb.ORB._getDelegate(ORB.java:563)
at org.jacorb.orb.ORB.string_to_object(ORB.java:2378)
at fr.esrf.TangoApi.ConnectionDAODefaultImpl.createDevice(ConnectionDAODefaultImpl.java:337)
at fr.esrf.TangoApi.ConnectionDAODefaultImpl.connect_to_dbase(ConnectionDAODefaultImpl.java:613)
at fr.esrf.TangoApi.ConnectionDAODefaultImpl.init(ConnectionDAODefaultImpl.java:104)
at fr.esrf.TangoApi.Connection.<init>(Connection.java:159)
at fr.esrf.TangoApi.Database.<init>(Database.java:97)
at fr.esrf.TangoApi.ApiUtilDAODefaultImpl.get_db_obj(ApiUtilDAODefaultImpl.java:131)
at fr.esrf.TangoApi.ApiUtil.get_db_obj(ApiUtil.java:130)
at jive3.MainPanel.initComponents(MainPanel.java:154)
at jive3.MainPanel.<init>(MainPanel.java:123)
at jive3.MainPanel.<init>(MainPanel.java:107)
at jive3.MainPanel.main(MainPanel.java:1335)
Caused by: java.lang.ClassNotFoundException: javax.rmi.CORBA.Stub
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
... 22 more
very strange. I don’t recall encountering this issue before. It looks like a problem with the CORBA classes. Which version of the jdk are you using - open-jdk or oracle-jdk? I will try to reproduce your problem on ubuntu 18.04.
Would it help if you have a dockerised version of jive?
It looks like there are some ways to work around this issue by specifying additional options when invoking java (–add-module “java.corba” --add-exports=…, …).
The easiest way to solve this problem would be to install java 8 and start jive using java 8.
you are absolutely right. I could reproduce the problem on Ubuntu 18.04 with java 10.0.1 (the latest default java jdk in Ubuntu 18.04).
I followed the recipe you pointed out on stack overflow. It almost worked - I had to download the jacorb-omgapi-3.4.jar and add org.omg.Timebase to the list of exports. I modified the jive script as follows and then jive worked (and atk):
Indeed I can run jive and all the other libtango-java apps with openjdk-8 and version 11 did not work.
For now I am working with v. 8 because I have a similar issue with an EPICS Java app.
The package[2] seems like an interesting alternative to OpenJDK and Jacorb. It would be a nice exercise to try it. Hopefully I will find some time for that this Autumn.