Java的动态机制---动态编译

Java的动态机制---动态编译
1 作用

  • 客户写代码,动态编译。
  • 服务器动态加载某些类文件

2 两种做法

  • 通过Runtime调用Javac
  • 通过JavaCompiler实现编译

3 参数
第一个为Java编译器提供参数
第二个为接受java编译器的输出信息
第三个接收编译器的错误信息
第四个参数能传入一个或多个Java源文件
返回值为0 表示成功,

public class Demo01{
      public static void main(String[] args){
      JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
       int result = compiler.run(null,null,null,"c:/Hello.java");
}


}

4 动态运行编译好的类

  • 使用Runtime运行;客户写代码,动态编译。
  • 通过反射运行编译好的类
URLClassLoader loader = new URLClassLoader(urls);
Class c = loader.loaderClass(classFile);
c.getMethod("main",String[].class).invole(null,(Object)new Sttring[]{});
//Object由于可变参数时JDK5之后才有,因此如果不转为Object会 Sttring[]{“11”“vv”}被当作两   个参数。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容