例如有如下表單程式,在package "cn.jar.test" 中,同時,程式有2個資源檔about.txt和about.gif:
package cn.jar.test;<br />import java.awt.*;<br />import java.io.*;<br />import java.net.*;<br />import java.util.*;<br />import javax.swing.*;</p><p>public class ResourceTest {<br />public static void main(String[] args) {<br />EventQueue.invokeLater(new Runnable(){<br />public void run(){<br />ResourceTestFrame frame=new ResourceTestFrame();<br />frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br />frame.setVisible(true);<br />}<br />});<br />}<br />}</p><p>@SuppressWarnings("serial")<br />class ResourceTestFrame extends JFrame{<br />public ResourceTestFrame(){<br />setTitle("ResourceTest");<br />setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);<br />URL aboutURL=getClass().getResource("about.gif");<br />Image img=Toolkit.getDefaultToolkit().getImage(aboutURL);<br />setIconImage(img);</p><p>JTextArea textArea=new JTextArea();<br />InputStream stream=getClass().getResourceAsStream("about.txt");<br />Scanner in=new Scanner(stream);<br />while(in.hasNext()){<br />textArea.append(in.nextLine()+"/n");<br />}<br />add(textArea);<br />}<br />public static final int DEFAULT_WIDTH=300;<br />public static final int DEFAULT_HEIGHT=300;<br />}
目錄結構如下:
Step 1:切換到../src/cn/jar/test目錄下,用javac編譯:
javac ResourceTest.java
Step 2:切換到../src目錄下,運行該程式,檢查是否有執行階段錯誤:
java cn.jar.test.ResourceTest
Step 3: 把所有.class檔案及資源檔about.txt, about.gif複製到另外一個test目錄下,例如c:/src/cn/jar/test。同樣是相同的目錄結構cn/jar/test。
Step 4:產生jar包,切換到c:/src下:
jar cvf test.jar cn
Step 5: 加入資訊清單檔: 在c:/src目錄下建立test.mf檔案,用記事本開啟,加入如下行,注意輸入完後一定要換行:
Main-Class: cn.test.jar.ResourceTest
Step 6: 更新預設的資訊清單檔:
jar umf test.mf test.jar
於是一個jar包就產生打包好了。可以把test.jar包複製到另外一個目錄,如c:/temp下,運行
java -jar test.jar
進行測試打包是否成功。