2015-04-17 3 views
0

Я пытаюсь использовать класс DigestUtils из org.apache.commons.codec.digest и я импортировать его в Java, как это:ClassNotFoundException при работе в CMD

import org.apache.commons.codec.digest.DigestUtils; 

Когда я запустить его в Eclipse, это работает. Но когда я пытаюсь запустить его из командной строки (с «Java Simhash»), я получаю это:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/codec/digest/DigestUtils 
    at Simhash.main(Simhash.java:17) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.digest.DigestUtils 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    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) 
    ... 1 more 

Я в общей сложности Java-новичок. Я загрузил файл commons-codec-1.10.jar, поместил его в папку проекта и импортировал его с помощью пути сборки -> Настроить путь сборки -> Добавить внешние JAR ...

Любая идея?

ответ

1

Добавить файл JAR в командной строке выполнения классам

java -cp commons-codec-1.10.jar;. Simhash 

Это также просто запустить непосредственно из Eclipse, поскольку вы уже добавили файл в путь к классам.

+0

спасибо, это решило мою проблему. Я предположил, что это связано с привязкой, но не знал, как это сделать. да, он работает в Eclipse, но моя программа читает из stdin, и я должен передать файл в stdin. Я думаю, что это не может быть сделано в Eclipse, поэтому я должен запустить его из CMD, чтобы иметь возможность называть его «java Simhash XploD

1

Вам необходимо добавить путь к классу в java-команду в качестве аргумента. Для получения дополнительной информации обратитесь к документации по java.

java -classpath DigestUtils.jar:. TestClass 
Смежные вопросы