一尘不染

“ java -cp”和“ java -jar”之间的区别?

java

使用
java -cp CLASSPATH和运行Java应用程序有什么区别java -jar JAR_FILE_PATH?在运行Java应用程序时,其中一个优先于另一个吗?我的意思是,对于JVM(根据它们的机器资源使用情况),这些方法中的哪一种更昂贵?

哪一种会导致JVM在尝试运行应用程序时产生更多线程?


阅读 263

收藏
2020-09-08

共1个答案

一尘不染

我更喜欢第一个版本来启动Java应用程序,只是因为它的陷阱少了(“欢迎使用classpath
hell”)。第二个需要一个可执行的jar文件,并且必须在jar的清单中定义该应用程序的类路径(所有其他类路径声明将被静默忽略…)。因此,在第二个版本中,您必须查看jar,阅读清单,并尝试从jar的存储位置查找类路径条目是否有效…这是可以避免的。

我不希望这两个版本在性能上都有优缺点。只是告诉jvm主线程使用哪个类以及在哪里可以找到库。

2020-09-08