没有合适的资源?快使用搜索试试~ 我知道了~
首页JavaCompiler --JDK6 API的简介(java动态编译)
JavaCompiler --JDK6 API的简介(java动态编译)

java动态编译的几种技术介绍。JavaCompiler --JDK6 API的简介(java动态编译)
资源详情
资源评论
资源推荐

JavaCompiler --JDK6 API 的简介
在非常多 Java 应用中需要在程式中调用 Java 编译器来编译和运行。但在早期的版本中(Java SE5 及以前版本)中只能通过
tools.jar 中的 com.sun.tools.javac 包来调用 Java 编译器,但由于 tools.jar 不是标准的 Java 库,在使用时必须要设置这个 jar 的
路径。而在 Java SE6 中为我们提供了标准的包来操作 Java 编译器,这就是 javax.tools 包。使用这个包,我们能不用将 jar 文
件路径添加到 classpath 中了。
一、使用 JavaCompiler 接口来编译 Java 源程式
使用 Java API 来编译 Java 源程式有非常多方法,目前让我们来看一种最简单的方法,通过 JavaCompiler 进行编译。
我们能通过 ToolProvider 类的静态方法 getSystemJavaCompiler 来得到一个 JavaCompiler 接口的实例。
JavaCompiler#compiler#=#ToolProvider.getSystemJavaCompiler();
JavaCompiler 中最核心的方法是 run。通过这个方法能编译 java 源程式。这个方法有 3 个固定参数和 1 个可变参数(可变
参数是从 Jave SE5 开始提供的一个新的参数类型,用 type… argu 表示)。前 3 个参数分别用来为 java 编译器提供参数、得到
Java 编译器的输出信息及接收编译器的错误信息,后面的可变参数能传入一个或多个 Java 源程式文件。如果 run 编译成功,
返回 0。
int#run(InputStream#in,#OutputStream#out,#OutputStream#err,#String...#arguments)
如果前 3 个参数传入的是 null,那么 run 方法将以标准的输入、输出代替,即 System.in、System.out 和 System.err。如
果我们要编译一个 test.java 文件,并将使用标准输入输出,run 的使用方法如下:
int#results#=#tool.run(null,#null,#null,#"test.java");
下面是使用 JavaCompiler 的完整代码:
!"#
$%&'()$%
&***++
)&&,-+编译成功+.+编译失败+
//在程式中运行
0&00
(&++
12!& 12!!
120& 120 !0
&34&
)
5

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1