[英]Java Compiler run() method
我在網上找到了關於JavaCompiler的代碼
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
int result = compiler.run(null, null, null,
"src/org/kodejava/example/tools/Hello.java");
它說為compiler.run(null, null, null
,這三個空值分別是默認的System.in
, System.out
和System.err
。但這些值實際上做了什么,因為我找不到這些的API?有人可以解釋一下嗎?
Javadoc就在這里 。
int run(InputStream in,OutputStream out,OutputStream err,String ... arguments)
使用給定的I / O通道和參數運行該工具。 按照慣例,工具返回0表示成功,非零表示錯誤。 生成的任何診斷都將以某種未指定的格式寫入out或err。
Parameters: in - "standard" input; use System.in if null out - "standard" output; use System.out if null err - "standard" error; use System.err if null arguments - arguments to pass to the tool Returns: 0 for success; nonzero otherwise
對於System.in,System.out和System.err,這些是全局流(默認情況下)連接到STDIN,STDERR和STDOUT。 這三個是在JVM啟動時由操作系統設置的。 您可以將它們傳遞給文件,或者只是寫入(讀取)控制台。
在這種情況下,您將使用參數來檢查程序的編譯器輸出(而不是僅將其發送給用戶)。 這是“以某種未指定的格式寫出的診斷”的地方。
您可以指定自己的流,而不是依賴於標准的系統流。 例如,如果要將輸出重定向到某個文件,可以創建文件輸出流,然后傳遞給#run調用。
JavaCompiler是javax.tools.JavaCompiler ,它實現了javax.tools.Tool接口,請參閱javadoc for javax.tools.Tool#run方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.