例如有如下窗体程序,在package "cn.jar.test" 中,同时,程序有2个资源文件about.txt和about.gif:
- package cn.jar.test;
- import java.awt.*;
- import java.io.*;
- import java.net.*;
- import java.util.*;
- import javax.swing.*;
- public class ResourceTest {
- public static void main(String[] args) {
- EventQueue.invokeLater(new Runnable(){
- public void run(){
- ResourceTestFrame frame=new ResourceTestFrame();
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setVisible(true);
- }
- });
- }
- }
- @SuppressWarnings("serial")
- class ResourceTestFrame extends JFrame{
- public ResourceTestFrame(){
- setTitle("ResourceTest");
- setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);
- URL aboutURL=getClass().getResource("about.gif");
- Image img=Toolkit.getDefaultToolkit().getImage(aboutURL);
- setIconImage(img);
- JTextArea textArea=new JTextArea();
- InputStream stream=getClass().getResourceAsStream("about.txt");
- Scanner in=new Scanner(stream);
- while(in.hasNext()){
- textArea.append(in.nextLine()+"/n");
- }
- add(textArea);
- }
- public static final int DEFAULT_WIDTH=300;
- public static final int DEFAULT_HEIGHT=300;
- }
目录结构如下:
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
进行测试打包是否成功。