Jar文件的小小总结(原创)
我java菜鸟,最近一直用fat_jar打包,感觉什么都不会,就一顿点击next,实在学习不到东西,所有自己参考网上资料学习了一下。。。
1 jar文件打包基本的命令格式,我就不详细说了.诸位只需要在cmd命令行下敲入jar命令,就可以出现各个参数的具体含义,而且说明的很清楚,其中还有两个基本的例子。
2 打包单个文件夹下面的包,只需要jar -(这个横线可有可无)cvf(一般来说是这三个选项组合在一起) 你的JAR名字 -C(可有可无) 你的包名
举例如下: 假设我使用Eclipse建立d:\workspace\dizh\src\di\test\Test.java文件,那么我的命令格式: (前提是你进入到src目录下,并且编译了Test.java
具体代码如下:
package com
public Test{
public static void main(String[] args){
System.out.println("Hello");
}
}
jar -cvf MyFisrst.jar -C . di/test/Test.class -------> 打包一个类文件
jar -cvf MyFisrst.jar -C . di/test/* -------> 打包test下面的所有类文件--->包含子文件夹
jar -cvf MyFisrst.jar -C . di/* -------> 打包di下面的所有类文件--->包含子文件夹
jar -cvf MyFisrst.jar -C . di -------> 打包di下面的所有类文件--->包含子文件夹
jar -cvf MyFisrst.jar -C di -------> 打包di下面的所有类文件--->包含子文件夹
以上命令对于只有单个文件时候,是等价的,我已经测试过了,不是的时候我已经加注释了!!!(如果错了,请您提示我,我好修改)
打包成功后,会出现MyFirst.jar,如果你想生成可执行的,我的办法是,打开生成的jar包中的MAINFEST.MF文件,添加一行:
Main-Class: 你的包中可执行的类 ---> 注意:后面有空格,并且最后要回车
在本例中就是
Main-Class: di.test.Test
之后,你就可以双击或者通过java -jar执行了。
3 如果打包的时候包含多个包文件
设现在有两个包:di/client/和di/common/,分别位于d:\workspace\dizh\src\di下,其中分别有Client.java和ThinkO.java类,其中Client.java调用ThinkO.java文件,那么我们的命令行格式是:
jar -cvf MySecond.jar -C . di/client/* di/common/*
jar -cvf MySecond.jar -C di/client/* di/common/*
上面两种形式经我测试,相同结果.如果你想生成可执行Jar包,和上面2中同样的原理修改。
至于如何加载第三方包,我目前还没学习,打算最近学习后,在详细说明!!!
1 jar文件打包基本的命令格式,我就不详细说了.诸位只需要在cmd命令行下敲入jar命令,就可以出现各个参数的具体含义,而且说明的很清楚,其中还有两个基本的例子。
2 打包单个文件夹下面的包,只需要jar -(这个横线可有可无)cvf(一般来说是这三个选项组合在一起) 你的JAR名字 -C(可有可无) 你的包名
举例如下: 假设我使用Eclipse建立d:\workspace\dizh\src\di\test\Test.java文件,那么我的命令格式: (前提是你进入到src目录下,并且编译了Test.java
具体代码如下:
package com
public Test{
public static void main(String[] args){
System.out.println("Hello");
}
}
jar -cvf MyFisrst.jar -C . di/test/Test.class -------> 打包一个类文件
jar -cvf MyFisrst.jar -C . di/test/* -------> 打包test下面的所有类文件--->包含子文件夹
jar -cvf MyFisrst.jar -C . di/* -------> 打包di下面的所有类文件--->包含子文件夹
jar -cvf MyFisrst.jar -C . di -------> 打包di下面的所有类文件--->包含子文件夹
jar -cvf MyFisrst.jar -C di -------> 打包di下面的所有类文件--->包含子文件夹
以上命令对于只有单个文件时候,是等价的,我已经测试过了,不是的时候我已经加注释了!!!(如果错了,请您提示我,我好修改)
打包成功后,会出现MyFirst.jar,如果你想生成可执行的,我的办法是,打开生成的jar包中的MAINFEST.MF文件,添加一行:
Main-Class: 你的包中可执行的类 ---> 注意:后面有空格,并且最后要回车
在本例中就是
Main-Class: di.test.Test
之后,你就可以双击或者通过java -jar执行了。
3 如果打包的时候包含多个包文件
设现在有两个包:di/client/和di/common/,分别位于d:\workspace\dizh\src\di下,其中分别有Client.java和ThinkO.java类,其中Client.java调用ThinkO.java文件,那么我们的命令行格式是:
jar -cvf MySecond.jar -C . di/client/* di/common/*
jar -cvf MySecond.jar -C di/client/* di/common/*
上面两种形式经我测试,相同结果.如果你想生成可执行Jar包,和上面2中同样的原理修改。
至于如何加载第三方包,我目前还没学习,打算最近学习后,在详细说明!!!