设置Classpath但Java程序(使用Apache外部jar)不能在CMD Line上运行

时间:2015-07-16 15:01:30

标签: java eclipse jar cmd

所以我遵循了几个教程,我基本上尝试在带有外部Jar的cmd行上运行java程序。我知道有很多关于此的问题,但是在尝试使用代码后我发现了两个错误。 \

它是一个名为“HelloJar.java”的简单程序,它使用了Apache Commons Lang String Utils。

我看到错误( 你可以看到我设置了类路径并运行它 。):

ClassPathError

虽然在Eclipse中工作很好

EclipseRun

文件夹结构(在罐子里是必要的罐子,在Src中是我需要的项目):

FolderStructure

以下是我为StringUtils导入的 .jar文件

jar folder

找不到符号是什么意思?

----------------------- Rajesh的回答--------------------- ---------------

2ndError

4 个答案:

答案 0 :(得分:1)

问题在于,jar未在类路径中设置并导致编译错误:

根据路径共享,编译命令应为:

cd C:\ Users \ Controlled \ Documents \ Eclipse_Projects \ HelloWorld \ src

javac -cp .;C:\Users\Controlled\Documents\Eclipse_Projects\HelloWorld\jars\* HelloJar.java

使用上述路径运行java程序的命令:

java -cp .;C:\Users\Controlled\Documents\Eclipse_Projects\HelloWorld\jars\* HelloJar

答案 1 :(得分:0)

  

找不到符号是什么意思?

这意味着,编译器无法在类路径中找到指定的路径。所以,这意味着,当您尝试从命令行运行jar时,您的库

org.apache.commons.lang.StringUtils

找不到

。因此,为了解决这个问题,请检查您的jar中是否包含该库,或者您是否在类路径中具有该库并指定了正确的类路径。

答案 2 :(得分:0)

虽然您确实将类路径设置为正确的文件夹,但是窗口路径分离与Unix Box不同。

javac -cp ".;./jars/org.apache.commons.lang.StringUtils.jar/" HelloJar.java 
java -cp ".;./jars/org.apache.commons.lang.StringUtils.jar/" HelloJar

答案 3 :(得分:0)

另一个Java的区别是类路径是编译时路径。它与执行时间路径不同。