groovy NoClassDefFoundError
Я очень новичок в Groovy и пробую этот пример из книги Groovy in Action. У меня есть эта программа fibonacci.groovy и при попытке запустить программу с помощью команды Java, я получаю ошибку NoClassDefFound.
Команда, которую я использую в консоли:
java -cp %GROOVY_HOME%/embeddable/groovy-all-2.2.0.jar;classes fibonacci
Как вы можете видеть, я упомянул jar groovy-all в classpath и установил переменную GROOVY_HOME. Переменная classpath не установлена, поэтому я предполагаю, что она имеет значение по умолчанию '.' значение найти в самой текущей папке. Что я делаю неправильно?
1 ответ
Вы не пропустили текущую папку в пути к классам?
Я на Linux, но если я скомпилирую класс Groovy с groovyc
а затем попробуйте запустить его с java
Я должен сказать Java, где мой groovy-all.jar
а также добавить текущий каталог в classpath
Итак, этот сборник работает:
$ groovyc Fib.groovy
Но этот прогон не запускается:
$ java -cp $GROOVY_HOME/embeddable/groovy-all-2.2.0.jar:classes Fib
Так как отсутствует текущий каталог в пути:
$ java -cp $GROOVY_HOME/embeddable/groovy-all-2.2.0.jar:. Fib
test for fib
Также обратите внимание, что если fibonacci
находится в пакете, вам нужно ввести полный путь к классу. Итак, для этого заводного источника:
package up.foo
println "test for fib"
Обобщение:
$ groovyc Fib.groovy
Мы пишем полный путь к пакету для выполнения:
$ java -cp $GROOVY_HOME/embeddable/groovy-all-2.2.0.jar:. up.foo.Fib
Вот оно:
test for fib