美文网首页
Java的动态机制---动态编译

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

作者: 吃块西瓜写代码 | 来源:发表于2019-07-27 11:43 被阅读0次

    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”}被当作两   个参数。
    

    相关文章

      网友评论

          本文标题:Java的动态机制---动态编译

          本文链接:https://www.haomeiwen.com/subject/tbrjrctx.html