用命令行编译java并生成可执行的jar包


如果对于编译有编码要求的 应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java

一个package中,两个java文件中,一个有main函数,一个没有,两者之间有调用关系

ThreadTest.java

package common;

import javax.swing.JFrame;

public class ThreadTest {
    public static void main(String[] args)  {
        DD.to();
        JFrame frame;
        frame = new JFrame();
        frame.setSize(500,DD.size());
        frame.setLocation(300,300);
        frame.setVisible(true);
    }
}

DD.java

package common;

/**
 * Created by shao on 2016/11/8.
 */
public class DD {

    public static void to(){
        System.out.println("shaofeifei is a master");
    }
    public static int size(){
        return 1000;
    }
}
刚开始文件情况为:

执行步骤:

结果:

就是这样了。


将my.jar通过2345好压打开看为:

多了一个META-INF文件,打开发现:

打开MANIFEST.MF文件



前面讲的都是一个package包中的,现在引入多个包

项目结构

文件结构





ThreadTest.java

package common;

import javax.swing.JFrame;

import common.ff.DD;
import common.rr.GG;

public class ThreadTest {
    public static void main(String[] args) {
        DD.to();
        JFrame frame;
        frame = new JFrame();
        frame.setSize(GG.widthSize(), DD.heightSize());
        frame.setLocation(300, 300);
        frame.setVisible(true);
    }
}

DD.java

package common.ff;

import common.rr.GG;

/**
 * Created by shao on 2016/11/8.
 */
public class DD {
    public static void to() {
        System.out.println("shaofeifei is a master");
    }

    public static int heightSize() {
        return GG.widthSize()/2;
    }

    public static void main(String args[]) {
        for (int i = 0; i < 5; i++) {
            System.out.println("--------------------");
        }
        System.out.println("master of masters");
        for (int i = 0; i < 5; i++) {
            System.out.println("--------------------");
        }
    }
}

GG.java

package common.rr;

/**
 * Created by shao on 2016/11/8.
 */
public class GG {
    public static int widthSize() {
        return 1000;
    }
}

接下来有两种编译方法,一种是直接编译ThreadTest.java,不写代码单独编译DD.java,GG.java


这就是在src目录中,按顺序从最基础的开始编译这些java文件,运行之后结果为:(多java文件的时候,一定要选择操作路径在所有文件的外面,如果不引入外部的jar包,则不用-classpath ,否则引用javac -classpath jar包路径 sourcesfiles)




这时候大家都编译好了,

一种简单的方法就是把整个common文件夹变成一个jar包,也可以只提取class文件,把java文件删除之后再把common文件夹变成一个jar包



运行jar命令之后:


运行jar包结果:


这时候的my.jar内部结构为:






这样做的话jar包中有很多没用的java文件。所以我们还可以将java文件删除后再打包成jar格式



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值