如何使用Apache Commons库从CMD运行Java

时间:2013-07-08 14:52:13

标签: java classpath apache-commons

我制作了一个使用Apache Commons io和lang3库的程序。

它在eclipse中运行正常,但是我无法从cmd运行它并且它出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/la ng3/StringUtils 
    at mainActivity.main(mainActivity.java:37) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils 
    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

如何让它从cmd运行(以便它在批处理文件中运行)

**我比较新,我在Win 8上(我没有使用Maven)**

7 个答案:

答案 0 :(得分:1)

将必要的jar添加到类路径中。视窗:

> java -classpath yourjar.jar;lib\*.jar com.example.Main

Unix的:

$ java -classpath yourjar.jar:lib/*.jar com.example.Main

唯一的区别是目录分隔符(/ / \)和路径分隔符(: / ;)。这假设您的Apache jar位于项目的lib目录中。

答案 1 :(得分:1)

从eclipse运行程序时,Eclipse会在类路径中添加jar文件。但是当您运行相同的表单命令提示符时,jars文件需要显式位于类路径中。

有两种方式

  • 使用类路径运行程序,如下所示
  

java -classpath“.; c:\ yourLib *”YourApp

其中yourLib是包含apache-commons jar的文件夹。

  • CLASSPATH环境变量的值设置为;
  • 分隔的jars的绝对路径
  

设置CLASSPATH = D:\ yourLib \

然后运行没有classpath选项的程序。运行时将从之前定义的环境变量中选择所需的类路径。

  

java YourApp

注意:我假设是Windows平台。

答案 2 :(得分:0)

您必须让您的JAVA了解您正在使用的库。 Java不知道在哪里查找这些库。

答案 3 :(得分:0)

使用apache-commons库更新类路径。

答案 4 :(得分:0)

您的类路径有问题。 Eclipse能够使用项目设置来解析类路径中的运行时库依赖项。在java的commons-lang*.jar中添加commons-io*.jarclasspath个文件。您可以使用-cp-classpath选项在命令行上设置classpath。

答案 5 :(得分:0)

您需要在CMD窗口中手动添加每个jar文件。您可以使用-cp

执行此操作

例如

java -cp /path/to/file;/path/to/anotherfile ...

另外,请记住使用正确的路径分隔符 - ;用于Windows,:用于linux

答案 6 :(得分:-1)

如果你正在使用Maven那么

<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.3</version>
</dependency>