java -jar classpath心得
如果單個jar文件,沒有引用到其他jar文件,而且指定了Main-Class,可以這樣運行:
java -jar hello.jar
如果執行的jar文件引用了其他jar文件,該怎麼辦?
這裏hello.jar裏面用到Log4j的Log
java -cp log4j-1.2.14.jar -jar hello.jar
這個想當然可以執行,實際上執行會出現ClassNotFoundException的
因爲使用了 -jar 選項,環境變量 CLASSPATH 和在命令行中指定的所有類路徑都被 JVM 所忽略
正確運行方式如下:
1、
java -cp lib\log4j-1.2.14.jar;hello.jar com.dhn.Hello (com.dhn.Hello爲主類)
在windows下多個jar之間以分號(;)隔開,最後還需要指定運行jar文件中的完整的主類名
2、
java -jar hello.jar
但是需要修改hello.jar中的MANIFEST.MF,通過MANIFEST.MF中的Class-Path 來指定運行時需要用到的其他jar,
其他jar可以是當前路徑也可以是當前路徑下的子目錄。多個jar文件之間以空格隔開
以下面的MANIFEST.MF文件爲例
Manifest-Version: 1.0
Main-Class: com.ibm.portalnews.entrance.Main
Class-Path: lib\commons-collections-3.2.jar lib\commons-configuration-1.5.jar lib\commons-lang-2.3.jar lib\commons-logging.jar lib\dom4j-1.6.1.jar lib\jaxen-1.1-beta-7.jar lib\jdom.jar lib\log4j-1.2.14.jar
其中Manifest-Version表示版本號,一般由IDE工具(如eclipse)自動生成
Main-Class 是jar文件的主類,程序的入口
Class-Path 指定需要的jar,多個jar必須要在一行上,多個jar之間以空格隔開,如果引用的jar在當前目錄的子目錄下,windows下使用\來分割,linux下用/分割
文件的冒號後面必須要空一個空格,否則會出錯
文件的最後一行必須是一個回車換行符,否則也會出錯
java -jar hello.jar
如果執行的jar文件引用了其他jar文件,該怎麼辦?
這裏hello.jar裏面用到Log4j的Log
java -cp log4j-1.2.14.jar -jar hello.jar
這個想當然可以執行,實際上執行會出現ClassNotFoundException的
因爲使用了 -jar 選項,環境變量 CLASSPATH 和在命令行中指定的所有類路徑都被 JVM 所忽略
正確運行方式如下:
1、
java -cp lib\log4j-1.2.14.jar;hello.jar com.dhn.Hello (com.dhn.Hello爲主類)
在windows下多個jar之間以分號(;)隔開,最後還需要指定運行jar文件中的完整的主類名
2、
java -jar hello.jar
但是需要修改hello.jar中的MANIFEST.MF,通過MANIFEST.MF中的Class-Path 來指定運行時需要用到的其他jar,
其他jar可以是當前路徑也可以是當前路徑下的子目錄。多個jar文件之間以空格隔開
以下面的MANIFEST.MF文件爲例
Manifest-Version: 1.0
Main-Class: com.ibm.portalnews.entrance.Main
Class-Path: lib\commons-collections-3.2.jar lib\commons-configuration-1.5.jar lib\commons-lang-2.3.jar lib\commons-logging.jar lib\dom4j-1.6.1.jar lib\jaxen-1.1-beta-7.jar lib\jdom.jar lib\log4j-1.2.14.jar
其中Manifest-Version表示版本號,一般由IDE工具(如eclipse)自動生成
Main-Class 是jar文件的主類,程序的入口
Class-Path 指定需要的jar,多個jar必須要在一行上,多個jar之間以空格隔開,如果引用的jar在當前目錄的子目錄下,windows下使用\來分割,linux下用/分割
文件的冒號後面必須要空一個空格,否則會出錯
文件的最後一行必須是一個回車換行符,否則也會出錯
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.