java动态加载.class或.jar包,类加载器和反射机制,都是java里比较好的东西
Java code
//把编译后的A.class,放到你的F盘下
public class A {
public void getA()
{
System.out.println("证明我被执行了");
}
}
//下边的代码随便放什么位置
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
public class Test {
public static void main(String[] args) throws Exception{
URL url1=new URL("file:F:/");//包路径,根据你放.class文件的位置设置,我是把A.class放在F盘根目录下了
URLClassLoader myClassLoader=new URLClassLoader(new URL[]{url1});//初始化类加载器,以路径[]为参数
Class myClass=myClassLoader.loadClass("A");//加载类A
Object obj = myClass.newInstance();//反射获得类A的对象
/**
* 执行类A的getA方法
*/
Method m = myClass.getMethod("getA");
m.invoke(obj);
}
}
jar cf jar-file input-file...
用一个单独的文件创建一个 JAR 文件
jar cf jar-file dir-name
用一个目录创建一个 JAR 文件
jar cf0 jar-file dir-name
创建一个未压缩的 JAR 文件
jar uf jar-file input-file...
更新一个 JAR 文件
jar tf jar-file
查看一个 JAR 文件的内容
jar xf jar-file
提取一个 JAR 文件的内容
jar xf jar-file archived-file...
从一个 JAR 文件中提取特定的文件
java -jar app.jar
运行一个打包为可执行 JAR 文件的应用程序 **