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
Другие вопросы по тегам