【问题标题】:How to execute jar file with a external dependency using command line on Windows?如何在 Windows 上使用命令行执行具有外部依赖项的 jar 文件?
【发布时间】:2014-10-24 15:59:36
【问题描述】:

我有包含清单的 jar 文件

    Manifest-Version: 1.0
    Build-Jdk: 1.7.0_67
    Created-By: Apache Maven 3.2.3
    Main-Class: com.company.main.Main
    Archiver-Version: Plexus Archiver

并且jar对外部库有编译依赖

compile 'org.apache.commons:commons-lang3:3.3.2'

所以我想执行我写的命令行:

java -cp C:\commons-lang3-3.3.2.jar -jar myJar-1.0.0.jar

但是

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
        at ...

如何在类路径中添加这个文件?

PS。如果我使用“坏方法”并将 commons-lang3-3.3.2.jar 复制粘贴到 ...jre7\lib\ext 文件夹中。一切正常。

【问题讨论】:

    标签: java maven jar cmd


    【解决方案1】:

    如果您没有使用 -jar 选项,那么您需要指定要运行的主类,因为不会询问清单:

    java -cp C:\commons-lang3-3.3.2.jar;.\myJar-1.0.0.jar com.company.main.Main
    

    如果使用 -jar 选项,则忽略类路径 (-cp) 选项(在这种情况下,清单应通过其类路径指令引用任何其他所需的 jar)。

    【讨论】:

    • 感谢解释 -jar 的替代方案。回答了 5 到 6 个类似的问题以获得详细信息。
    【解决方案2】:

    “坏路”..?您永远不应该在 java 目录中包含您的 jar 文件。您希望应用程序的用户在使用标准 java..时如何使用您的 jar?

    您可以使用@tombola82 建议的命令,也可以在项目本身中包含commons-lang jar,以便您可以参考它。

    【讨论】:

      猜你喜欢
      • 2017-08-22
      • 2011-08-26
      • 1970-01-01
      • 2015-04-21
      • 2020-11-16
      • 2012-04-21
      • 1970-01-01
      • 2019-08-13
      • 1970-01-01
      相关资源
      最近更新 更多