動(dòng)態(tài)執(zhí)行java文件2019/8/06

有的時(shí)候我們需要運(yùn)行一段外部的java程序,這時(shí)候就要使用到到動(dòng)態(tài)加載:

? ? ? ? 使用:

????????????JavaCompiler? compiler? =? ToolProvider.getSystemJavaCompiler(); //獲得動(dòng)態(tài)編譯器

????????????int result = compiler.run(null,null,null,"path"); //運(yùn)行java文件


參數(shù)解釋:

前3個(gè)參數(shù)分別用來為java編譯器提供參數(shù)、得到Java編譯器的輸出信息及接收編譯器的錯(cuò)誤信息,后面的可變參數(shù)能傳入一個(gè)或多個(gè)Java源程式文件。如果run編譯成功,返回0。?

  int run ( InputStream in ,? OutputStream out ,? OutputStream? err ,? String… arguments)?

  如果前3個(gè)參數(shù)傳入的是null,那么run方法將以標(biāo)準(zhǔn)的輸入、輸出代替,即System.in、System.out和System.err。如果我們要編譯一個(gè)test.java文件,并將使用標(biāo)準(zhǔn)輸入輸出,run的使用方法如下:

? ? ? ? ? ? 第一個(gè):為java編譯器提供參數(shù),如果為空(null)的話,使用?鍵盤 輸入(System.in)

????????????第二個(gè):得到Java編譯器的輸出信息,如果為空(null)的話,輸出到控制臺(tái)(System.out)

????????????第三個(gè):接收編譯器的錯(cuò)誤信息,如果為空(null)的話,錯(cuò)誤信息輸出到控制臺(tái)(System.err)

????????????第四個(gè):需要執(zhí)行的java文件路徑,是一個(gè)? 可變參數(shù),可以傳入多個(gè)?String ,即可以運(yùn)行多個(gè)java文件

一般情況下前三個(gè)都是null就好了

返回一個(gè) int 類型:

? ? 為 0?表示成功,非0表示失敗

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容