Tom's Blog
Installing Groovy from RPM on Fedora
Published by Tom |
March 21, 2009 06:11 PM EST |
I installed Groovy 1.6 on Fedora from an RPM as offered on the
Groovy download
page and immediately got an exception stack trace when running groovysh or groovyConsole.
I installed the groovy-1.6.0-2.noarch.rpm file,
kindly packaged by Federico Pedemonte,
then tried to run groovyConsole:
[tom@dev ~]$ groovyConsole Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/groovy/tools/GroovyStarter Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.tools.GroovyStarter at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) Could not find the main class: org.codehaus.groovy.tools.GroovyStarter. Program will exit.I then tried to run groovysh with no better luck:
[tom@dev ~]$ groovysh Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/groovy/tools/GroovyStarter Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.tools.GroovyStarter at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) Could not find the main class: org.codehaus.groovy.tools.GroovyStarter. Program will exit.The problem turned out to be quite simple to solve: a missing GROOVY_HOME. The packager adds the environment variable GROOVY_HOME to the shell by adding the file /etc/profile.d/groovy.sh so bash picks it up at startup via the /etc/profile script, but my current shell hadn't had a chance to read in that file yet.
The solution was as easy as exiting and starting a new shell, or manually setting:
[tom@dev ~]$ export GROOVY_HOME=/usr/share/groovy [tom@dev ~]$ groovyConsoleand everything works.
Saturday March 21, 2009 Permalink
Comments [0]


