java动态编译
来源:互联网 发布:中华名人名篇网络 编辑:程序博客网 时间:2024/05/16 09:39
有时候需要在运行时动态生成源程序,然后编译。于是写了下面这个动态编译类(参考了网上的代码)
public class CompilerUtil {public static boolean compile(String binPath, String clsName, String source) {JavaCompiler cmp = ToolProvider.getSystemJavaCompiler();StandardJavaFileManager fm = cmp.getStandardFileManager(null, null, null);JavaFileObject jfo = new StringJavaObject(clsName, source);List<String> optionsList = new ArrayList<String>();optionsList.addAll(Arrays.asList("-d", binPath));List<JavaFileObject> jfos = Arrays.asList(jfo);JavaCompiler.CompilationTask task = cmp.getTask(null, fm, null, optionsList, null, jfos);return task.call();}static class StringJavaObject extends SimpleJavaFileObject {private String content;public StringJavaObject(String fileName, String content) {super(createUri(fileName), Kind.SOURCE);this.content = content;}private static URI createUri(String name) {return URI.create("String:///" + name + Kind.SOURCE.extension);}@Overridepublic CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException {return content;}}}
0 0
- java 内存编译-动态编译
- 动态编译JAVA程序
- 动态编译Java程序
- 动态编译JAVA程序
- JAVA动态编译简介
- 动态编译JAVA程序
- 动态编译JAVA程序
- Java动态编译
- Java的动态编译
- Java动态编译
- JAVA 的动态编译
- Java动态编译
- Java动态编译
- JAVA动态编译
- java动态编译
- Java动态编译笔记
- Java动态编译(一)
- 动态编译Java源文件
- 记一次性能测试实践
- 05-树8 File Transfer (25分)
- 门票(特长生准备)
- 配置caffe-C3D,提取视频特征
- LeetCode 103. Binary Tree Zigzag Level Order Traversal
- java动态编译
- 汇编1
- maven插件之maven之maven-surefire-plugin
- NOIP模拟 朋友(快排+贪心)
- 如何更好更快的站在巨人的肩膀上?--英语,Know与Do
- (项目)AR电子书系统创新实训第一周(2)
- JavaScript使用
- linux 下查看文件的大小
- TCP和UDP的135、137、138、139、445端口的作用