2014-09-05 139 views
1

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

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 
+3

这个类有主要方法吗? – sidgate 2014-09-05 13:39:53

+0

为什么不是java -jar C:\ tmp \ lib \ indices-0.0.2-SNAPSHOT.jar? – JSlain 2014-09-05 13:46:46

+0

是的,这里有一个主要的方法。在类路径中还有其他的JAR,为了简洁起见,所讨论的单个JAR文件仅仅被显示。 – 2014-09-05 14:44:59

回答

1

由于安全原因,当您使用java -jar运行Java时,Java省略了类路径变量。

解决的办法是在MANIFEST.MF文件的Class-Path:属性中定义相关性。