使用jar命令創建可執行的jar包
1、創建可執行的jar包。
手工寫manifest.mf文件(jar命令自動生成的MANIFEST.MF文件中不會包含Main-Class屬性),舉例說明:
目錄結構:
mymanifest.mf //該文件可以隨意放置,只要在執行jar命令時指定mymanifest.mf文件所在位置.
- src
- test
Test. class
- src
- test
Test. class
test.Test代碼:
1 package test;
2 public class Test {
3 public static void main(String[] args) {
4 System.out.println( " HelloWorld! " );
5 }
6 }
2 public class Test {
3 public static void main(String[] args) {
4 System.out.println( " HelloWorld! " );
5 }
6 }
mymanifest.mf文件內容:
Manifest - Version: 1.0
// 該屬性是創建可執行jar包必需的,指定的Main-Class爲全路徑類名(且該類必需有main方法)
Main - Class: test.Test
Created - By: wiflish
// 該屬性是創建可執行jar包必需的,指定的Main-Class爲全路徑類名(且該類必需有main方法)
Main - Class: test.Test
Created - By: wiflish
在src目錄下執行:
jar cvfm test.jar .. / mymanifest .
完成後會在src目錄下生成一個test.jar文件。由於沒有可視化界面,雙擊test.jar將會看到沒反應。
在命令行執行java -jar test.jar就會得到輸出HelloWorld!
這時就完成了基本的創建可執行的jar包。
2、創建要依賴其他包的可執行jar包。
這時只要更改mymanifest.mf文件加入:
Manifest - Version: 1.0
// 該屬性是創建可執行jar包必需的,指定的Main-Class爲全路徑類名(且該類必需有main方法)
Main - Class: test.Test
// 該屬性指定依賴包的路徑(路徑是相對jar包所在路徑)
Class - Path: lib / swing - layout - 1.0 .jar // 這裏舉例說明,隨便用的包
Created - By: wiflish
// 該屬性是創建可執行jar包必需的,指定的Main-Class爲全路徑類名(且該類必需有main方法)
Main - Class: test.Test
// 該屬性指定依賴包的路徑(路徑是相對jar包所在路徑)
Class - Path: lib / swing - layout - 1.0 .jar // 這裏舉例說明,隨便用的包
Created - By: wiflish
目錄結構:
- src
- test
TestDepends. class //假設該類執行依賴於 swing-layout-1.0.jar,具體代碼略。
testDepends .jar
- lib
swing - layout - 1.0 .jar
- test
TestDepends. class //假設該類執行依賴於 swing-layout-1.0.jar,具體代碼略。
testDepends .jar
- lib
swing - layout - 1.0 .jar
雙擊testDepends .jar就能正確執行,如果 TestDepends .jar包所在的當前目錄下沒有lib/swing-layout-1.0.jar的話,如下目錄結構:
- src
- test
TestDepends. class // 假設該類執行依賴於 swing-layout-1.0.jar,具體代碼略。
testDepends.jar
雙擊testDepends.jar,將會報Could not find the main class, Program will exit.- test
TestDepends. class // 假設該類執行依賴於 swing-layout-1.0.jar,具體代碼略。
testDepends.jar
在命令行執行 java -jar testDepends.jar,就會得到找不到TestDepends.class中所依賴的類的錯誤.