将class文件打包成可执行文件

1.新建一个java文件,编译成class文件,如TreeDemo1.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class TreeDemo1
{
    public TreeDemo1()
    {
        JFrame f = new JFrame("TreeDemo");
        Container contentPane = f.getContentPane();
       
        String[] s1 = {"公司文件","个人信件","私人文件"};
        String[] s2 = {"本机磁盘(C:)","本机磁盘(D:)","本机磁盘(E:)"};
        String[] s3 = {"奇摩站","职棒消息","网络书店"};
        Hashtable hashtable1 = new Hashtable();
        Hashtable hashtable2 = new Hashtable();
        hashtable1.put("我的公文包",s1);
        hashtable1.put("我的电脑",s2);
        hashtable1.put("收藏夹",hashtable2);
        hashtable2.put("网站列表",s3);
        JTree tree = new JTree(hashtable1);
        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setViewportView(tree);
       
        contentPane.add(scrollPane);
        f.pack();
        f.setVisible(true);
       
        f.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }

    public static void main(String args[]) {
        new TreeDemo1();
    }
}

2.写一个Manifest文件,如Manifest.txt,内容(横线之间部分)如下:

------------------------------------------------------------------------------------------------------
Manifest-Version: 1.0
Main-Class:TreeDemo1

------------------------------------------------------------------------------------------------------

注意最后加一个换行.

3.打包,

 jar cvfm demo.jar Manifest.txt  TreeDemo1.class(如果有多个class文件,则用*.class代表)

4.双击生成的demo.jar文件,即可执行(只针对有窗体的class).

5.更多命令参数见jar帮助

用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
选项:
    -c  创建新的存档
    -t  列出存档内容的列表
    -x  展开存档中的命名的(或所有的〕文件
    -u  更新已存在的存档
    -v  生成详细输出到标准输出上
    -f  指定存档文件名
    -m  包含来自标明文件的标明信息
    -0  只存储方式;未用ZIP压缩格式
    -M  不产生所有项的清单(manifest〕文件
    -i  为指定的jar文件产生索引信息
    -C  改变到指定的目录,并且包含下列文件:
如果一个文件名是一个目录,它将被递归处理。
清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。

示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中:
       jar cvf classes.jar Foo.class Bar.class
示例2:用一个存在的清单(manifest)文件 'mymanifest' 将 foo/ 目录下的所有
           文件存档到一个名为 'classes.jar' 的存档文件中:
       jar cvfm classes.jar mymanifest -C foo/ .

6.另外,还可以将class文件生成exe文件,一款工具exe4j可以实现,这里有介绍.

http://blog.csdn.net/zhoubin_java/archive/2005/04/14/348142.aspx

exe4j:http://www.ej-technologies.com/products/exe4j/overview.html

原文地址:https://www.cnblogs.com/longware/p/13382410.html