Компиляция Java-пакета с библиотеками в Windows CMD - PullRequest
0 голосов
/ 14 сентября 2011

У меня есть пакет Java, содержащий один класс, который я пытаюсь скомпилировать в Windows CMD.

Вот структура папок:

Folder structure

.\src\содержит пакеты.Я пытаюсь скомпилировать класс внутри пакета AggregationEngine.Класс называется testClass.java и использует библиотеку twitter4j.Файлы jar библиотеки twitter4j включены в каталог .\src\lib\ как twitter4j-core-2.2.4.jar

Я попробовал следующее:

javac -classpath "..\lib\twitter4j-core-2.2.4.jar" -sourcepath C:\x\x\x\src\AggregationEngine\ AggregationEngine\TwitterCrawler.java

java AggregationEngine.testClass "test String"

pause

, но, похоже, это не работает.У меня есть базовое понимание вышеизложенного.Я даже не уверен, является ли вышеуказанный правильный способ сделать это.

Примечание: Я не хочу вдаваться в метод определения переменных Environment, потому что я собираюсь сделать то же самое в другой ОС.Да, и я могу также включить несколько файлов .jar.

- Правка - Вывод: при запуске приложения.java AggregationEngine.TwitterCrawler

Exception in thread "main" java.lang.NoClassDefFoundError: twitter4j/TwitterException
Caused by: java.lang.ClassNotFoundException: twitter4j.TwitterException
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)

Любой совет?

Ответы [ 4 ]

2 голосов
/ 14 сентября 2011

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

Это должно работать:

java -classpath .;..\lib\twitter4j-core-2.2.4.jar AggregationEngine.testClass "test String"
2 голосов
/ 14 сентября 2011

Не могли бы вы использовать муравья? это, наверное, самый простой способ сделать это:)

http://ant.apache.org/

0 голосов
/ 21 марта 2013

Я знаю, что он слишком старый, но для таких, как я, проблема ClassNotFound for TwitterException была решена путем включения в проект файлов jar log4j, slf4j и commons-logging, поскольку они используются ядром twitter4j.

0 голосов
/ 14 сентября 2011

... или Maven , включая Twitter4j в вашем проекте Maven, объяснено в http://twitter4j.org/en/index.html#maven

...