Java类路径(-cp)并将执行传递给该类

Java类路径(-cp)并将执行传递给该类,java,jar,Java,Jar,我对Java比较陌生,但对于类路径的工作原理有相当的了解,因为它提供了一个文件夹和JAR列表,使类可供其他类使用 我编译了一个JAR(比方说example.JAR),它有一个主函数,执行通常从这里开始。有时,我希望执行从一个不同的类(比如myAlternateClass.java)开始,并有自己的主类。例如,我可以通过在执行jar时使用-cp参数来实现这一点 java -cp example.jar myAlternateClass 这符合我的要求,但我不确定这里到底发生了什么。我不能100%

我对Java比较陌生,但对于类路径的工作原理有相当的了解,因为它提供了一个文件夹和JAR列表,使类可供其他类使用

我编译了一个JAR(比方说example.JAR),它有一个主函数,执行通常从这里开始。有时,我希望执行从一个不同的类(比如myAlternateClass.java)开始,并有自己的主类。例如,我可以通过在执行jar时使用-cp参数来实现这一点

java -cp example.jar myAlternateClass

这符合我的要求,但我不确定这里到底发生了什么。

我不能100%确定你到底在找什么,但我会试一试

使用jar文件有两种方法。如果jar文件在其META-INF/MANIFEST.MF文件中指定了一个主类,那么您可以用jar文件加载java,并在该类的主方法中开始执行

java-jarexample.jar

另一方面,可以简单地将jar文件加载到类路径上,这样就可以使用其中的所有类。以下是您给出的示例:

java-cp example.jar org.somewhere.MySecondClass

-cp example.jar
将jar中的所有类放在类路径上,第二个参数
org.somewhere.MySecondClass
给出了应该开始执行的类。第二个参数必须在jar中,因为指定类路径会覆盖默认值(即当前目录)。在本例中,java忽略jar的MANIFEST.MF文件中指定的任何主类(如果指定了主类)

多个jar文件以及不在jar中的java文件的目录可以通过在它们之间放置冒号来指定。所以

java-jar示例。jar:。MyClass


可以从当前目录启动MyClass,但将example.jar放在类路径上,这样MyClass就可以创建example.jar中可用的任何类的实例。

我不能100%确定您到底在寻找什么,但我会试一试

使用jar文件有两种方法。如果jar文件在其META-INF/MANIFEST.MF文件中指定了一个主类,那么您可以用jar文件加载java,并在该类的主方法中开始执行

java-jarexample.jar

另一方面,可以简单地将jar文件加载到类路径上,这样就可以使用其中的所有类。以下是您给出的示例:

java-cp example.jar org.somewhere.MySecondClass

-cp example.jar
将jar中的所有类放在类路径上,第二个参数
org.somewhere.MySecondClass
给出了应该开始执行的类。第二个参数必须在jar中,因为指定类路径会覆盖默认值(即当前目录)。在本例中,java忽略jar的MANIFEST.MF文件中指定的任何主类(如果指定了主类)

多个jar文件以及不在jar中的java文件的目录可以通过在它们之间放置冒号来指定。所以

java-jar示例。jar:。MyClass


可以从当前目录启动MyClass,但将example.jar放在类路径上,这样MyClass就可以创建example.jar中任何可用类的实例。

当类路径上有
example.jar
时,您只调用了
myAlternateClass
。如果
myAlternateClass
不需要该JAR中的任何东西,那么将其放在类路径上是一个误称;它真的不需要在那里。通常,您可以通过
java-jarexample.JAR
从JAR中调用主类。JVM正在将“example.JAR”加载到系统类加载器中。然后JVM从“myAlternateClass”运行main。当类路径上有
example.jar
时,您只调用
myAlternateClass
。如果
myAlternateClass
不需要该JAR中的任何东西,那么将其放在类路径上是一个误称;它真的不需要在那里。通常,您可以通过
java-jarexample.JAR
从JAR中调用主类。JVM正在将“example.JAR”加载到系统类加载器中。然后JVM从“myAlternateClass”运行main。是的,这正是我想要的,完全有道理。谢谢,很好。很高兴能帮忙。快乐的编码。是的,这正是我想要的,而且完全有意义。谢谢,很好。很高兴能帮忙。快乐编码。