动态编译.pdf
《动态编译.pdf》由会员分享,可在线阅读,更多相关《动态编译.pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、 JAVA 6.0引入了动态编译机制。 动态编译的应用场景: 可以做一个浏览器端编写java代码,上传服务器编译和运行的在线评测系统。 服务器动态加载某些类文件进行编译 动态编译的两种做法: 通过Runtime调用javac,启动新的进程去操作Runtime run = Runtime.getRuntime(); Process process = run.exec(javac -cp d:/myjava/ HelloWorld.java); 通过JavaCompiler动态编译 通过JavaCompiler动态编译 第一个参数:为java编译器提供参数 第二个参数:得到 Java 编译器的输
2、出信息 第三个参数:接收编译器的 错误信息 第四个参数:可变参数(是一个String数组)能传入一个或多个 Java 源文件 返回值:0表示编译成功,非0表示编译失败public static int compileFile(String sourceFile) /动态编译动态编译 JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); int result = compiler.run(null, null, null,sourceFile); System.out.println(result=0?编译成功编译成功:编译失
3、败编译失败); return result; 通过Runtime.getRuntime()运行启动新的进程运行 通过反射运行编译好的类Runtime run = Runtime.getRuntime(); Process process = run.exec(java -cp d:/myjava HelloWorld); / Process process = run.exec(java -cp +dir+ +classFile); /通过反射运行程序public static void runJavaClassByReflect(String dir,String classFile) throws Exception try URL urls = new URL new URL(file:/+dir); URLClassLoader loader = new URLClassLoader(urls); Class c = loader.loadClass(classFile); /调用加载类的main方法 c.getMethod(main,String.class).invoke(null, (Object)new String); catch (Exception e) e.printStackTrace();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 动态 编译
限制150内