Ubuntu 16: How to get apt package sikuli-ide working

Asked by ePinaL

I installed sikuli-ide on Ubuntu 16 without getting any errors:

"sudo apt-get install sikuli-ide"

When I type in console:

"sikuli-ide"

I get this error:
"Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException
 at org.sikuli.ide.SikuliIDE.main(SikuliIDE.java:919)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.ParseException
 at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:357)"

I used the same procedure before on Ubuntu 15.04 and it worked so I think this is some issue with Ubuntu 16.

Question information

Language:
English Edit question
Status:
Solved
For:
SikuliX Edit question
Assignee:
No assignee Edit question
Solved by:
YeTr2
Solved:
Last query:
Last reply:
Revision history for this message
RaiMan (raimund-hocke) said :
#1

this apt package is surely out of date and not supported here.

http://sikulix.com

Revision history for this message
ePinaL (elpinal) said :
#2

Thanks for the answer RaiMan but that answer doesn't give me any solution.
I was able to install it using sikulixsetup-1.1.0.jar now when I run sikuli-ide in a console I'm still getting the same java exception. However when I run the 'runsikulix' it works.
How can I get 'sikuli-ide' command line working without Java exceptions?

Revision history for this message
RaiMan (raimund-hocke) said :
#3

sikuli-ide has nothing to do with SikuliX 1.1.0. As long as you run sikuli-ide nothing changes.

So just purge the apt package from your system and use runsikulix.

Revision history for this message
Best YeTr2 (yetr2quared) said :
#4

so, the reason it isn't working from the package on my system is because not all the dependencies were pulled in when I looked at installing it on my system. not because of what ever RaiMan is blathering on about.

$ cat /usr/bin/sikuli-ide
#!/bin/sh
LC_NUMERIC=C exec /usr/bin/java \
 -cp \
/usr/share/java/guava.jar:\
/usr/share/java/jnr-posix.jar:\
/usr/share/java/jaffl.jar:\
/usr/share/java/jna.jar:\
/usr/share/java/asm3.jar:\
/usr/share/java/asm3-commons.jar:\
/usr/share/java/antlr3-runtime.jar:\
/usr/share/java/jnr-constants.jar:\
/usr/share/java/jnr-ffi.jar:\
/usr/share/java/jython.jar:\
/usr/share/java/commons-cli.jar:\
/usr/share/java/JXGrabKey.jar:\
/usr/share/java/json-simple.jar:\
/usr/share/java/swing-layout.jar:\
/usr/share/java/swingx-core.jar:\
/usr/share/java/jgoodies-common.jar:\
/usr/share/java/forms.jar:\
/usr/share/java/mac_widgets.jar:\
/usr/share/java/junit.jar:\
/usr/share/sikuli/sikuli-ide.jar:\
/usr/share/java/sikuli-script.jar \
 -Dsikuli.console=true \
 -Dsikuli.debug=0 \
 -Xms64M -Xmx512M \
 -Dfile.encoding=UTF-8 \
 -Dpython.home=/usr/share/jython \
 -Dpython.path="/usr/share/sikuli/Lib" \
 -Dpython.cachedir=$HOME/.jython-cache \
 org.sikuli.ide.SikuliIDE "$@"

$ file /usr/share/java/guava.jar /usr/share/java/jnr-posix.jar /usr/share/java/jaffl.jar /usr/share/java/jna.jar /usr/share/java/asm3.jar /usr/share/java/asm3-commons.jar /usr/share/java/antlr3-runtime.jar /usr/share/java/jnr-constants.jar /usr/share/java/jnr-ffi.jar /usr/share/java/jython.jar /usr/share/java/commons-cli.jar /usr/share/java/JXGrabKey.jar /usr/share/java/json-simple.jar /usr/share/java/swing-layout.jar /usr/share/java/swingx-core.jar /usr/share/java/jgoodies-common.jar /usr/share/java/forms.jar /usr/share/java/mac_widgets.jar /usr/share/java/junit.jar /usr/share/sikuli/sikuli-ide.jar /usr/share/java/sikuli-script.jar
/usr/share/java/guava.jar: Zip archive data, at least v2.0 to extract
/usr/share/java/jnr-posix.jar: Zip archive data, at least v2.0 to extract
/usr/share/java/jaffl.jar: cannot open `/usr/share/java/jaffl.jar' (No such file or directory)
/usr/share/java/jna.jar: cannot open `/usr/share/java/jna.jar' (No such file or directory)
/usr/share/java/asm3.jar: symbolic link to asm3-3.3.2.jar
/usr/share/java/asm3-commons.jar: symbolic link to asm3-commons-3.3.2.jar
/usr/share/java/antlr3-runtime.jar: cannot open `/usr/share/java/antlr3-runtime.jar' (No such file or directory)
/usr/share/java/jnr-constants.jar: Zip archive data, at least v2.0 to extract
/usr/share/java/jnr-ffi.jar: Zip archive data, at least v2.0 to extract
/usr/share/java/jython.jar: symbolic link to jython-2.5.3.jar
/usr/share/java/commons-cli.jar: cannot open `/usr/share/java/commons-cli.jar' (No such file or directory)
/usr/share/java/JXGrabKey.jar: symbolic link to JXGrabKey-0.3.2.jar
/usr/share/java/json-simple.jar: cannot open `/usr/share/java/json-simple.jar' (No such file or directory)
/usr/share/java/swing-layout.jar: symbolic link to swing-layout-1.0.4.jar
/usr/share/java/swingx-core.jar: Zip archive data, at least v1.0 to extract
/usr/share/java/jgoodies-common.jar: Zip archive data, at least v1.0 to extract
/usr/share/java/forms.jar: symbolic link to jgoodies-forms.jar
/usr/share/java/mac_widgets.jar: symbolic link to mac_widgets-0.10.0+svn416.jar
/usr/share/java/junit.jar: symbolic link to junit-3.8.2.jar
/usr/share/sikuli/sikuli-ide.jar: Java archive data (JAR)
/usr/share/java/sikuli-script.jar: symbolic link to sikuli-script-1.0~x~rc3.tesseract3.jar

$ apt install libantlr3-runtime-java libjna-java libcommons-cli-java libjson-simple-java

$ file /usr/share/java/guava.jar /usr/share/java/jnr-posix.jar /usr/share/java/jaffl.jar /usr/share/java/jna.jar /usr/share/java/asm3.jar /usr/share/java/asm3-commons.jar /usr/share/java/antlr3-runtime.jar /usr/share/java/jnr-constants.jar /usr/share/java/jnr-ffi.jar /usr/share/java/jython.jar /usr/share/java/commons-cli.jar /usr/share/java/JXGrabKey.jar /usr/share/java/json-simple.jar /usr/share/java/swing-layout.jar /usr/share/java/swingx-core.jar /usr/share/java/jgoodies-common.jar /usr/share/java/forms.jar /usr/share/java/mac_widgets.jar /usr/share/java/junit.jar /usr/share/sikuli/sikuli-ide.jar /usr/share/java/sikuli-script.jar
/usr/share/java/guava.jar: Zip archive data, at least v2.0 to extract
/usr/share/java/jnr-posix.jar: Zip archive data, at least v2.0 to extract
/usr/share/java/jaffl.jar: cannot open `/usr/share/java/jaffl.jar' (No such file or directory)
/usr/share/java/jna.jar: symbolic link to jna-4.2.2.jar
/usr/share/java/asm3.jar: symbolic link to asm3-3.3.2.jar
/usr/share/java/asm3-commons.jar: symbolic link to asm3-commons-3.3.2.jar
/usr/share/java/antlr3-runtime.jar: Java archive data (JAR)
/usr/share/java/jnr-constants.jar: Zip archive data, at least v2.0 to extract
/usr/share/java/jnr-ffi.jar: Zip archive data, at least v2.0 to extract
/usr/share/java/jython.jar: symbolic link to jython-2.5.3.jar
/usr/share/java/commons-cli.jar: symbolic link to commons-cli-1.3.1.jar
/usr/share/java/JXGrabKey.jar: symbolic link to JXGrabKey-0.3.2.jar
/usr/share/java/json-simple.jar: Java archive data (JAR)
/usr/share/java/swing-layout.jar: symbolic link to swing-layout-1.0.4.jar
/usr/share/java/swingx-core.jar: Zip archive data, at least v1.0 to extract
/usr/share/java/jgoodies-common.jar: Zip archive data, at least v1.0 to extract
/usr/share/java/forms.jar: symbolic link to jgoodies-forms.jar
/usr/share/java/mac_widgets.jar: symbolic link to mac_widgets-0.10.0+svn416.jar
/usr/share/java/junit.jar: symbolic link to junit-3.8.2.jar
/usr/share/sikuli/sikuli-ide.jar: Java archive data (JAR)
/usr/share/java/sikuli-script.jar: symbolic link to sikuli-script-1.0~x~rc3.tesseract3.jar

$ sikuli-ide
Jul 12, 2016 3:43:28 PM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
[info] locale: en_US
*sys-package-mgr*: processing new jar, '/usr/share/java/guava.jar'
*sys-package-mgr*: processing new jar, '/usr/share/java/jnr-posix.jar'
*sys-package-mgr*: processing new jar, '/usr/share/java/jna-4.2.2.jar'
...
..
.

Also, running openjdk8, not 9

Whomever compiled the package needs to update their dependencies for the package. the ones I listed may not be all the onces which were required, I've had other java things loaded prior to attempting to getting this to run on my system.

fyi, 16.04 is sporting X1.0rc3, same version as stable on sikuli's site. not sure why you said it was out of date RaiMan

Revision history for this message
ePinaL (elpinal) said :
#5

Working like a charm after installing:

sudo apt install libantlr3-runtime-java libjna-java libcommons-cli-java libjson-simple-java
sudo apt-get install sikuli-ide

Thanks to YeTr2

Revision history for this message
ePinaL (elpinal) said :
#6

BTW I couldn't get it working on Ubuntu 14. If anyone has the dependencies to get it working please share.

Revision history for this message
YeTr2 (yetr2quared) said :
#7

ePinaL
You should take it up with the distribution maintainers on their forums. They were the ones who messed up packaging.
Look through the start scripts and see what dependencies are missing. Read the errors.

Revision history for this message
RaiMan (raimund-hocke) said :
#8

@YeTr2
Thanks for your clarification and contribution. Really appreciated.

--- sikuli-ide is out of date
I admit, that this might be misleading. It was meant for the package contents especially for the Sikuli X1.0rc3. Fine if you get it to work. And as long as it works, at least simple wait-click workflows are possible. With more demanding approaches there might be problems.
Since I am now on the way for a version 2, I do not support system specific problems with versions prior to SikuliX 1.1.x any more.
- needs OpenCV < 2.4
- does not use the latest Jython 2.7
- has many bugs and missing features

One more thing: I did not understand, why someone who has the latest version of SikuliX working (see comment #2) should want to downgrade to sikuli-ide, which has a feature level that is more than 6 years old.

Revision history for this message
YeTr2 (yetr2quared) said :
#9

Because it is what the package maintainer decided to make available.
Because package managers make things stupidly easy to manage.
Because package managers spoil newbies and vets alike.

Why require everything I want to install have it's own installer when I could just use a single command to magically install the world?

Also, older scripts still work on older setups, and when you have to QA or automagic what ever it is you are working with and it runs on the old stuff, why rewrite for something not as easily available ?

Revision history for this message
RaiMan (raimund-hocke) said :
#10

ok.