
java compiler是什么,讓我們一起了解一下:
Compiler是計算機(jī)語言,定義了一些不能與#If...Then...#Else指令一起使用的常數(shù),Java Compiler中最核心的方法是run(),通過這個方法能編譯java源代碼。
Java動態(tài)編譯Java Compiler的前提條件是什么?
前提條件是建立一個De.java文件:
public?class?De{
public?static?void?main(String[]?args){
System.out.println("hello?world");
}
}我們知道通過使用Java Compiler中最核心的方法run()能編譯java源代碼,使用的參數(shù)分別用來做什么?
1、java編譯器提供參數(shù)。
2、得到Java編譯器的輸出信息。
3、接收編譯器的錯誤信息。
4、一個或多個Java源程式文件。
如果run編譯成功,那么返回是0。

那如果前3個參數(shù)傳入的是null,該怎么辦?
那么run方法將以標(biāo)準(zhǔn)的輸入、輸出代替,即System.in、System.out和System.err。如果我們要編譯一個test.java文件,并將使用標(biāo)準(zhǔn)輸入輸出,run的使用方法如下:
int?results?=?tool.run(null,?null,?null,?"F:\\demo\\Test.java");
下面讓我們用具體案例證明:
//CompileMain.java
import?javax.tools.JavaCompiler;
import?javax.tools.ToolProvider;
import?java.io.BufferedReader;
import?java.io.IOException;
import?java.io.InputStreamReader;
?
public?class?CompileMain?{
?
????public?static?void?main(String[]?args)?throws?IOException?{
????????JavaCompiler?compiler?=?ToolProvider.getSystemJavaCompiler();
????????int?result?=?compiler.run(null,?null,?null,?"F:\\demo\\Test.java");
????????System.out.println(result?==?0???"編譯成功"?:?"編譯失敗");
?
//執(zhí)行java?命令?,?空參數(shù),?所在文件夾
????????Process?process?=?Runtime.getRuntime().exec("java?Test",null,new?File("F:\\demo\\"));
???????????????
?
????????BufferedReader?bufferedReader?=?new?BufferedReader(new?InputStreamReader(process.getInputStream()));
????????String?str;
????????while?((str?=?bufferedReader.readLine())?!=?null)?{
????????????System.out.println(str);
????????}
????}
}以上就是小編今天的分享了,希望可以幫助到大家。
