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