java如何在使用-classpath选项指定的多个jar中查找入口点

时间:2014-12-05 13:34:38

标签: java jar jvm classpath mainclass

这让我困扰了很长时间。

在Linux中,我看到一个进程cmdLine如下所示:

/usr/java/jdk1.7.0_65/bin/java-Dsosa-Djava.security.policy=conf/sosa.policy-Dlog4j.configuration=properties/sosa-log4j.properties-Xms256m-Xmx1024m-classpath:/opt/HP/jboss/standalone/deployments/hpsa.ear/lib/sosa.jar:/opt/HP/jboss/standalone/deployments/hpsa.ear/lib/mwfm.jar

我理解:

 -D : we specify property
 -classpath : we specify the path to be searched 

问题: 在JVM实例创建期间,如果在-classpath选项中有多个jar / ear,java如何查找主类或入口点。

我理解,我们可以在MANIFEST文件中指定主类,如:Main-Class: MyPackage.MyClass

但是我看到上面的罐子在MANIFEST文件中没有Main-Class条目。

  1. JAVA如何找到,从哪里开始,哪个类文件有主?
  2. 如果classpath中的两个jar有menifest文件,指定Main-Class,会发生什么?

1 个答案:

答案 0 :(得分:0)

检查CLI java的文档后,您将看到只有两个选项:

java [ options ] class [ arguments ]

在这里指定要执行的类..或

java [ options ] -jar file.jar [ arguments ]

指定一个JAR文件(正如您所知)必须在清单中包含Main-Class