NoClassDefFoundError при запуске из командной строки - PullRequest
0 голосов
/ 27 июля 2010

Я хотел бы использовать внешнюю библиотеку (например, Google Guava) для моей программы на Java.Я использую Eclipse, поэтому я скачал jav-файл Guava (и исходный код) и следовал Добавление библиотеки Java в classpath проекта , чтобы добавить ее в Eclipse и в buildpath моего проекта.

Это работаетхорошо: я могу запустить программу из Eclipse и из запускаемого jar, который я экспортирую из Eclipse, но я получаю сообщение об ошибке при попытке запуска непосредственно из bin/ dir, как я делал раньше:

Исключение в ветке "main"
java.lang.NoClassDefFoundError: com / google / common / base / Joiner

Что мне делать?

Ответы [ 4 ]

1 голос
/ 27 июля 2010

Вы должны указать Java, где найти библиотеку:

java -cp <path-to-lib-jar>;myJar.jar my.package.MyMainClass

или, если вы хотите использовать jar-файл, вы можете указать путь к библиотеке в MANIFEST проверьте здесь для объяснения.

1 голос
/ 27 июля 2010

Если вы запускаете файл класса непосредственно из каталога bin проекта, возможно, вам придется указать путь к классу вручную: C:> java -classpath C:\java\MyClasses;C:\java\OtherClasses MyClassHere

0 голосов
/ 27 июля 2010

Вы пробовали java -cp guava.jar ...?

0 голосов
/ 27 июля 2010

Чтобы запустить программу на консоли как можно точнее, когда вы запускаете ее из Eclipse, вам нужно запустить ее из корневого каталога проекта (не из bin) и не забудьте упомянуть classpath (* 1001) *http://download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/tooldocs/windows/classpath.html)

Так, например, по корню вы запустите:

java -classpath lib / guava.jar; bin packageName.className

...