And*_*s_D 84
我更喜欢第一个版本来启动一个java应用程序,因为它有较少的陷阱("欢迎来到classpath地狱").第二个需要一个可执行的jar文件,并且必须在jar的清单中定义该应用程序的类路径(所有其他类路径声明将被静默忽略...).因此,对于第二个版本,您必须查看jar,读取清单并尝试查找类路径条目是否有效存储jar的位置......这是可以避免的.
我不认为这两个版本都有任何性能优势或劣势.它只是告诉jvm哪个类用于主线程以及它可以在哪里找到库.
Rad*_*zea 52
使用-cp参数,您可以提供类路径,即程序在编译或运行时可能需要的其他类或库的路径.随-jar您指定要运行的可执行JAR文件.
您不能同时指定它们.如果你试图运行java -cp folder/myexternallibrary.jar -jar myprogram.jar那么它将无法正常工作.该JAR的类路径应在其Manifest中指定,而不是作为-cp参数指定.
PS:-cp和-classpath是同义词.
Ale*_*exR 15
使用时,java -cp您需要提供完全合格的主类名称,例如
java -cp com.mycompany.MyMain
使用java -jar myjar.jarjar文件时,必须通过包含在文件夹中jar文件中的manifest.mf提供有关主类的信息META-INF:
Main-Class: com.mycompany.MyMain
Rei*_*eus 10
如果要在类路径中指定所有代码,则必须使用java -cp CLASSPATH.这对于调试代码很有用.
java -jar JarFile如果您希望使用一个简短的命令启动应用程序,则可以使用jarred可执行格式:您可以使用Class-Path条目中的空格分隔jar在MANIFEST中指定其他相关jar文件,例如:
Class-Path: mysql.jar infobus.jar acme/beans.jar
Run Code Online (Sandbox Code Playgroud)
两者在性能方面都具有可比性.
| 归档时间: |
|
| 查看次数: |
123183 次 |
| 最近记录: |