JavaCompiler使用例子
来源:互联网 发布:年享财富网络借贷 编辑:程序博客网 时间:2024/04/29 05:42
package com.test;
import java.io.IOException;
import java.lang.reflect.Method;
import java.net.URI;
import java.util.Arrays;
import javax.tools.JavaCompiler;
import javax.tools.JavaFileObject;
import javax.tools.SimpleJavaFileObject;
import javax.tools.StandardJavaFileManager;
import javax.tools.ToolProvider;
public class CompileString {
public static void main(String[] args) throws Exception {
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
System.out.println(""+ToolProvider.getSystemJavaCompiler());
StandardJavaFileManager fileManager = compiler.getStandardFileManager(
null, null, null);
StringObject so = new StringObject(
"CalculatorTest",
"class CalculatorTest {"
+ " public int multiply(int multiplicand, int multiplier) {"
+ " System.out.println(multiplicand);"
+ " System.out.println(multiplier);"
+ " return multiplicand * multiplier;" + " }" + "}");
JavaFileObject file = so;
Iterable files = Arrays.asList(file);
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager,
null, null, null, files);
Boolean result = task.call();
System.out.println(result);
if (result) {
Class clazz = Class.forName("CalculatorTest");
Object instance = clazz.newInstance();
Method m = clazz.getMethod("multiply", new Class[] { int.class,
int.class });
Object[] o = new Object[] { 3, 2 };
System.out.println(m.invoke(instance, o));
}
}
}
class StringObject extends SimpleJavaFileObject {
private String contents = null;
public StringObject(String className, String contents) throws Exception {
super(URI.create("string:///" + className.replace('.', '/')
+ Kind.SOURCE.extension), Kind.SOURCE);
this.contents = contents;
}
public CharSequence getCharContent(boolean ignoreEncodingErrors)
throws IOException {
return contents;
}
}
- JavaCompiler使用例子
- JavaCompiler使用例子
- javacompiler
- JavaCompiler
- 使用java的JavaCompiler模拟Proxy自动编译
- javacompiler主体
- eclipse javaComPiler
- JAVA动态编译(JavaCompiler)
- JavaCompiler编译java文件
- JavaCompiler --JDK6 API的简介
- JavaCompiler --JDK6 API的简介
- 例子使用
- 通过JavaCompiler动态编译和运行
- Jdom使用例子
- Gantt 项目使用例子
- 使用AQTime 例子
- StrutsFileUpload使用简单例子
- stl 使用例子
- 注册博客
- 使用 RUNDLL32 调试控制面板 Applet
- TCP/IP连接状态图
- 从google docs发布博客到csdn成功!
- FFMpeg框架代码阅读
- JavaCompiler使用例子
- asp jsp代码
- CCNA入门基础之三 基础应用和协议
- 精通JavaScript —— 函数重载和类型检查
- eclipse调用WSDL生成客户端代码
- windows下创建db2连接流程
- 高级IO编程
- Sybase数据库性能调优
- 基础类的DSP/BIOS API调用