【问题标题】:Class not found error, but class is in JAR file on classpath找不到类错误,但类在类路径上的 JAR 文件中
【发布时间】:2014-09-05 13:37:49
【问题描述】:

从命令行调用 Java 类时,Java 找不到可执行类,即使它位于类路径上的 JAR 文件中。我是从 Python 脚本中的调用中得到的,但是在命令行(Windows 上的 DOS)上发生了同样的行为。任何人都可以建议吗?

c:\nco> java -mx1200m -cp C:\tmp\lib\indices-0.0.2-SNAPSHOT.jar nidis.indices.GriddedIndexCalculator 

Error: Could not find or load main class nidis.indices.GriddedIndexCalculator

c:\nco> jar -tf C:\tmp\lib\indices-0.0.2-SNAPSHOT.jar | find "GriddedIndexCalculator"

nidis/indices/GriddedIndexCalculator.class

【问题讨论】:

  • 这个类有没有main方法?
  • 为什么不 java -jar C:\tmp\lib\indices-0.0.2-SNAPSHOT.jar ?
  • 是的,类中有一个main方法。类路径上还有其他 JAR,为了简洁起见,仅显示有问题的单个 JAR 文件。

标签: java classpath


【解决方案1】:

出于安全原因,Java 在使用 java -jar 运行时会省略类路径变量。

解决方案是在MANIFEST.MF 文件的Class-Path: 属性中定义依赖关系。

【讨论】:

    猜你喜欢
    • 2011-11-27
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 1970-01-01
    • 2010-11-22
    • 1970-01-01
    • 2016-11-29
    • 2013-01-04
    相关资源
    最近更新 更多