“java -cp”和“java -jar”之间的区别?
使用
和 运行 Java 应用程序有什么区别?对于运行 Java 应用程序,其中一个是否优先于另一个?我的意思是这些方法中哪一种对JVM来说更昂贵(根据他们的机器资源使用情况)?java -cp CLASSPATH
java -jar JAR_FILE_PATH
哪一个会导致 JVM 在尝试运行应用程序时生成更多线程?
使用
和 运行 Java 应用程序有什么区别?对于运行 Java 应用程序,其中一个是否优先于另一个?我的意思是这些方法中哪一种对JVM来说更昂贵(根据他们的机器资源使用情况)?java -cp CLASSPATH
java -jar JAR_FILE_PATH
哪一个会导致 JVM 在尝试运行应用程序时生成更多线程?
我更喜欢启动Java应用程序的第一个版本,因为它的陷阱较少(“欢迎来到classpath hell”)。第二个需要一个可执行的jar文件,并且该应用程序的类路径必须在jar的清单中定义(所有其他类路径声明将被静默忽略...)。因此,在第二个版本中,您必须查看jar,阅读清单并尝试找出存储jar的类路径条目是否有效...这是可以避免的。
我不期望任何一个版本有任何性能优势或劣势。它只是告诉jvm哪个类用于主线程,以及在哪里可以找到库。