在CMD中运行时ClassNotFoundException

时间:2015-04-17 09:51:51

标签: java apache digest classnotfound

我尝试使用org.apache.commons.codec.digest中的DigestUtils类,并将其导入java中,如下所示:

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文件,将它放在我的项目文件夹中并使用Build Path导入它 - >配置构建路径 - >添加外部JAR ......

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

将JAR文件添加到命令行运行时类路径

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

这也应该直接从Eclipse运行,因为您已经将文件添加到类路径中。

答案 1 :(得分:1)

您需要在java命令中添加类路径作为参数。查看java文档以获取更多信息。

java -classpath DigestUtils.jar:. TestClass