java-cp与java-jar的区别

java-cp与java-jar的区别,java,runtime,Java,Runtime,在Maven中运行java程序的区别是什么: 1: java-jar目标/join-1.0-SNAPSHOT.jar 2: java-cp target/MavenTestApp-1.0-SNAPSHOT.jar org.koushik.javabrains.App 我想第一个我需要一个罐子。也许它与操作系统有关。java-jar在windows上,但java-cp在linux上,还是不重要?谢谢区别在于JVM如何学习启动类(即,它从中获取需要首先运行的公共静态main(String[])方法)

在Maven中运行java程序的区别是什么:

1: java-jar目标/join-1.0-SNAPSHOT.jar

2: java-cp target/MavenTestApp-1.0-SNAPSHOT.jar org.koushik.javabrains.App


我想第一个我需要一个罐子。也许它与操作系统有关。java-jar在windows上,但java-cp在linux上,还是不重要?谢谢

区别在于JVM如何学习启动类(即,它从中获取需要首先运行的
公共静态main(String[])
方法)

  • 使用
    -cp
    选项,可以在命令行上提供类的名称
  • 使用
    -jar
    选项,类的名称取自jar中的清单文件;类路径(如果有)也将被丢弃
这是

如果将应用程序捆绑在JAR文件中,则需要某种方法来指示JAR文件中的哪个类是应用程序的入口点。您可以在清单中的主类标头中提供此信息,其一般形式如下:

Main-Class: classname
值classname是作为应用程序入口点的类的名称


在第一个示例中,您正在执行jar的
清单
文件中提到的默认主类,而在第二个示例中,
.jar
文件保存在类路径中,并且在
-jar
案例中提到要执行的主类的名称,类路径也由jar清单指定。