【问题标题】:Setting Classpath but Java program(using Apache external jar) doesnt run on CMD Line设置类路径但 Java 程序(使用 Apache 外部 jar)不在 CMD 行上运行
【发布时间】:2015-07-16 15:01:29
【问题描述】:

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

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

我看到的错误(如您所见,我设置了类路径并运行它。):

在 Eclipse 中工作很好

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

这是我为 StringUtils 导入的 .jar 文件

找不到符号是什么意思?

-----------在拉杰什的回答之后--------- ---------------

【问题讨论】:

    标签: java eclipse jar cmd


    【解决方案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
    

    【讨论】:

    • 为什么要使用“lib”?
    • 嘿 Rajesh,我运行了脚本并发布了我收到的错误消息。
    • 我输入了“dir”以确保 .jar 是我指向的位置。
    • 所以关键是我正在使用外部 Jar 和 .properties 文件。我需要以不同的身份提及两者。 .jar 需要一个简单的 * 而属性需要另一个引用。基本上设置了两个类路径。
    【解决方案2】:

    找不到符号是什么意思?

    也就是说,编译器无法在类路径中找到指定的路径。因此,这意味着,当您尝试从命令行运行 jar 时,您的库中包含

    org.apache.commons.lang.StringUtils

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

    【讨论】:

    • 我正在使用 commons-lang-2.6.jar
    • 在类路径中吗?
    • 我只是把 *.jar 放在类路径中
    【解决方案3】:

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

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

    【讨论】:

    • 我添加了我导入的 .jar 文件以使其工作。是不是我用错了?
    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2011-01-08
      • 2016-05-22
      • 2015-07-13
      • 1970-01-01
      • 2012-04-22
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 2014-09-12
      相关资源
      最近更新 更多