运行java [-options] -jar jarfile(没有给出明确的类名)

时间:2010-01-04 15:54:56

标签: java jar

如果我错了,请纠正我。

在没有显式类名的情况下运行java [-options] -jar jarfile时,如果jar中包含public static void main(String[] args)方法的单个类,则会自动调用该方法。正确?

如果我有几个包含符合条件的main方法的课程会怎样?

5 个答案:

答案 0 :(得分:6)

它使用MANIFEST文件中定义的Main-Class来确定哪个类包含应该运行的主方法。

请参阅http://java.sun.com/docs/books/tutorial/deployment/jar/appman.html

答案 1 :(得分:4)

要运行的课程取自Manifest metadata

  

Main-Class:

     

此属性的值定义   主要的相对路径   启动器的应用程序类   将在启动时加载。价值   不得有.class扩展名   附加到班级名称。

答案 2 :(得分:2)

JAR必须包含一个带有“Main-Class”条目的manifest file

编辑:我记得有时文件不正确。如果“Main-Class”不适合您,请尝试“Main-class”(小写“class”)。

答案 3 :(得分:2)

运行哪个类'main是由.jar中的MANIFEST文件决定的。特别是Main-Class属性。

答案 4 :(得分:2)

如果您尝试在没有上述清单的jar上使用java -jar,您将获得以下输出:

Failed to load Main-Class manifest attribute from <jarname>.jar