java命令行生成jar包
写文件TestMain.java
package com.test.main;
public class TestMain{
public static void main(String[] args){
System.out.println("execute main .... ");
}
}
mkdir classes
javac -d ./classes TestMain.java # 编译好的class文件放置到classes文件夹下。
# 可以看到 classes中有com/test/main/TestMain.class
cd classes
vim MANIFEST.MF # 创建MANIFEST.MF文件
MANIFEST.MF 文件的内容为
Mainfest-Version: 1.0
Main-Class: com.test.main.TestMain
在classes目录下创建MANIFEST.MF后,
jar -cvfm TestMain.jar MANIFEST.MF com #生成TestMain.jar包
生成jar包后执行
java -jar TestMain.jar
MANIFEST.MF文件中可能的配置
Manifest-Version: 1.0
Main-Class: test.Main
Class-Path: ./ ./lib/commons-collections-3.2.jar ./lib/commons-dbcp-1.2.2.jar ./lib/commons-lang-2.3.jar ./lib/commons-logging-1.1.jar
Premain-class: test.java.agent # 使用javaagent的时候使用
javaagent的使用
准备javaagent的MANIFEST.MF文件
Manifest-Version: 1.0
Class-Path: ./ ./lib/commons-collections-3.2.jar ./lib/commons-dbcp-1.2.2.jar ./lib/commons-lang-2.3.jar ./lib/commons-logging-1.1.jar
Premain-class: test.java.agent
package com.test.JavaAgent;
import java.lang.instrument.Instrumentation;
public class JavaAgent{
public static void premain(String args,Instrumentation ins){
System.out.println("execute java agent");
}
}
编译成class和MANIFEST.MF一起打包成jar包。然后下面即可使用javaagent运行。
java -javaagent:./javaagent.jar -jar TestMain.jar