0

这一直困扰着我很长时间。

在 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选项中有多个jars/ears,java如何找到主类或入口点。

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

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

  1. JAVA如何找到,从哪里开始,哪个类文件有main?
  2. 如果类路径中的两个 jar 有清单文件,指定 Main-Class,会发生什么?
4

1 回答 1

0

一旦你检查了 CLI java的文档,你会看到只有两个选项:

java [ options ] class [ arguments ]

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

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

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

于 2014-12-05T13:46:56.207 回答