如果我错了,请纠正我。
在没有显式类名的情况下运行java [-options] -jar jarfile
时,如果jar中包含public static void main(String[] args)
方法的单个类,则会自动调用该方法。正确?
如果我有几个包含符合条件的main
方法的课程会怎样?
答案 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