2015-02-21 2 views
0

Я пытаюсь запустить код с несколькими файлами класса Java и файл jar, который из библиотеки, которую я загрузил. Я собирал их со следующим:Запуск нескольких классов Java

javac -cp "quickfixj-all-.jar" BTCCMarketDataRequest.java Bot.java 

Класс Bot имеет основной метод и BTCCMarketDataRequest файл имеет кучу других методов в классе. Я не создаю никаких пакетов.

Как мне запустить его? Если я: Java Bot я получаю следующий результат:?

Exception in thread "main" java.lang.NoClassDefFoundError: quickfix/Group 
    at Bot.main(Bot.java:4) 
Caused by: java.lang.ClassNotFoundException: quickfix.Group 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:323) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:268) 
    ... 1 more 

скомпилированного класса (один в файле банка не может быть найдена, но почему я скомпилировал

я. новый для Java, так что я понятия не имею, что происходит.

Спасибо!

ответ

0

Вы должны добавить пути к классам во время выполнения программы, а также.

java -cp .:quickfixj-all-.jar Bot 

Это предполагает, что Bot класс находится в пакете по умолчанию и все jar и .class зависимости находятся в том же каталоге.

+0

Спасибо! Что делать, если есть несколько файлов jar? –

+0

Затем вы должны указать все файлы jar. Чтобы избежать этого, основной класс обычно вставляется в свой собственный файл jar, в котором перечислены все его зависимости с помощью файла /META-INF/Manifest.mf. –

+0

Хорошо круто. Как вы указываете несколько файлов jar? Разделяю ли я их точкой с запятой или чем-то еще? –

Смежные вопросы