1、
查看jar目录:
jar tvf filename.jar
2、
解压包:
jar xvd filename.jar
3、
打包:
jar cvf filename.jar a.
class
b.
class
4、
用一个存在的清单文件 ‘manifest’(文件名任意) 打包
jar cvfm filename.jar
manifest
a.
class
b.
class
指定目录
jar cvfm filename.jar
my manifest
-C com/ .
5、
打包可执行jar包
配置清单文件(包含下列信息)
Main-Class: com.TestBean
Class-Path: lib\classes12.jar
打包:
jar cvfm filename.jar
mymanifest
com lib\class-1.0.0.jar
执行:java -jar filename.jar
-----------------------------------------------------------------
创建可执行的jar示例:
为了省事起见,先用maven的普通工程打成jar包,比如是test-1.0.jar
解压后目录:
$tree
.
|-- META-INF
| |-- MANIFEST.MF
| `-- maven
| `-- com.taobao
| `-- test
| |-- pom.properties
| `-- pom.xml
`-- com
`-- taobao
`-- SlowYGC.class
新创建lib目录,用于方依赖的jar包,新创建manifest文件,用于自定义配置项
manifest示例内容
Class-Path: lib/xstream-1.4.8.jar lib/xmlpull-1.1.3.1.jar lib/xpp3_min-1.1.4c.jar
Main-Class: com.taobao.SlowYGC
更改后的目录
$tree
.
|-- META-INF
| |-- MANIFEST.MF
| `-- maven
| `-- com.taobao
| `-- test
| |-- pom.properties
| `-- pom.xml
|-- com
| `-- taobao
| `-- SlowYGC.class
|-- lib
| |-- xmlpull-1.1.3.1.jar
| |-- xpp3_min-1.1.4c.jar
| `-- xstream-1.4.8.jar
`-- manifest
重新打包:
jar cvfm test-1.0.jar manifestcom/ META-INF/ lib/xstream-1.4.8.jar lib/xpp3_min-1.1.4c.jar lib/xmlpull-1.1.3.1.jar
执行:(你可以定义自己的参数执行)
$java -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xms512m -Xmx512m -Xmn100m -XX:+UseConcMarkSweepGC -jar test-1.0.jar
输出:
2016-03-15T06:07:43.414-0700: [GC2016-03-15T06:07:43.414-0700: [ParNew: 81920K->3351K(92160K), 0.0128160 secs] 81920K->3351K(514048K), 0.0129360 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
2016-03-15T06:07:44.552-0700: [GC2016-03-15T06:07:44.552-0700: [ParNew: 85271K->6512K(92160K), 0.0168230 secs] 85271K->6512K(514048K), 0.0168880 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
、、、、、省略、、、、、