运行Java应用程序与使用
java -cp CLASSPATH
和java -jar JAR_FILE_PATH
?在运行Java应用程序时,它们中的哪一个是首选的?我的意思是,这些方法中哪一种对JVM来说更昂贵(根据它们的机器资源使用情况)?
哪一个会导致JVM在尝试运行应用程序时产生更多的线程?
发布于 2012-08-12 21:59:01
我更喜欢启动java应用程序的第一个版本,因为它有更少的陷阱(“欢迎来到类路径地狱”)。第二个类需要一个可执行的jar文件,并且必须在jar的清单中定义该应用程序的类路径(所有其他类路径声明将被默默忽略...)。因此,对于第二个版本,您必须查看jar,读取清单,并尝试从存储jar的位置找出类路径条目是否有效……这是可以避免的。
我认为这两个版本都不会有任何性能上的优势或劣势。它只是告诉jvm将哪个类用于主线程,以及在哪里可以找到库。
发布于 2012-08-12 21:56:11
发布于 2012-08-12 21:57:32
使用java -cp
时,您需要提供完全限定的主类名称,例如
java -cp com.mycompany.MyMain
使用java -jar myjar.jar
时,jar文件必须通过manifest.mf提供有关主类的信息,该信息包含在META-INF
文件夹中的jar文件中
Main-Class: com.mycompany.MyMain
https://stackoverflow.com/questions/11922681
复制相似问题