Запуск программы на Java из командной строки, которая зависит от файла JAR? - PullRequest
5 голосов
/ 14 августа 2011

У меня есть простой файл Java Q.java, который зависит от файла внешней библиотеки X.jar. И Q.java, и X.jar находятся в одном каталоге. Я могу скомпилировать Q.java из командной строки, выполнив: "javac -cp X.jar Q.java". Это создает файл Q.class. Как мне запустить это сейчас? Я попробовал все это:

1) Java Q 2) java -cp X.jar Q

Я продолжаю получать Исключение в потоке "main" java.lang.NoClassDefFoundError: Q Вызывается: java.lang.ClassNotFoundException: Q

Так как мне запустить это из командной строки теперь, когда у меня есть файл класса?

Ответы [ 2 ]

11 голосов
/ 14 августа 2011
java -cp X.jar:. Q

Вы должны указать в classpath, что вы хотите использовать зависимость JAR И текущий локальный каталог для разрешения классов.


Редактировать предлагается в комментариях:

В Windows замените : на ;:

java -cp X.jar;. Q
0 голосов
/ 14 августа 2011

Установите текущий каталог в вашем classpath, это должно решить проблему.В большинстве случаев нам нужен текущий каталог в classpath, поэтому обычно я советую установить "."(без кавычек) в вашей системной переменной среды CLASSPATH вместо установки для каждого запуска.

...