Java-使用Runtime.getRuntime()。exec(無法啟動(dòng)臨時(shí)文件啟動(dòng)的進(jìn)程
通過傳遞一組環(huán)境變量來解決。
解決方法啟動(dòng)的進(jìn)程Runtime.getRuntime().exec(cmdLine,envp,workingDirectory);無法創(chuàng)建臨時(shí)文件。
在Eclipse的Maven插件中使用
從mvn啟動(dòng)報(bào)價(jià):
Caused by: java.io.IOException: ??????? at java.io.WinNTFileSystem.createFileExclusively(Native Method) at java.io.File.createTempFile(File.java:1879)
完整日志
演示代碼段遇到相同的錯(cuò)誤。
String mavenPath = 'D:Progsspringsourceapache-maven-3.0.4binmvn.bat';String mavenOptions = '-X compile exec:java -Dexec.mainClass=runclass.Runme';String[] cmdLine = new String[2];cmdLine[0] = mavenPath; //cmdLine.add(mavenPath);cmdLine[1] = mavenOptions; //cmdLine.add(mavenOptions+' compile exec:java -Dexec.mainClass='+packageClass);String[] envp = new String[2];//Map<String,String> envm = new HashMap<String,String>();envp[0] = 'JAVA_HOME=' + System.getProperty('java.home'); //System.getenv('JAVA_HOME');envp[1] = 'M2_HOME=' + System.getenv('MAVEN_HOME');File workingDirectory = null;String currentDir = new File('.').getAbsolutePath();log(currentDir);String userDir = System.getProperty('user.dir'); //User working directory ; 'user.home' User home directoryworkingDirectory = new File(userDir); log(workingDirectory.toString());//Runtime rt = Runtime.getRuntime();Process proc = rt.exec(cmdLine,workingDirectory);InputStream stdout = proc.getInputStream();InputStream stderr = proc.getErrorStream();InputStreamReader isr = new InputStreamReader(stdout);InputStreamReader isr2 = new InputStreamReader(stderr);BufferedReader br = new BufferedReader(isr);BufferedReader br2 = new BufferedReader(isr2);
更新:
傳遞TMP和TEMP環(huán)境變量無濟(jì)于事。通過 null而不是envp也無濟(jì)于事。
如果envp為null,則子進(jìn)程繼承當(dāng)前進(jìn)程的環(huán)境設(shè)置。
相關(guān)文章:
1. 在應(yīng)用配置文件 app.php 中找不到’route_check_cache’配置項(xiàng)2. html按鍵開關(guān)如何提交我想需要的值到數(shù)據(jù)庫3. HTML 5輸入框只能輸入漢字、字母、數(shù)字、標(biāo)點(diǎn)符號(hào)?正則如何寫?4. javascript - 請(qǐng)教如何獲取百度貼吧新增的兩個(gè)加密參數(shù)5. Android中能不能判斷一個(gè)數(shù)據(jù)庫是create來的,還是open來的?6. gvim - 誰有vim里CSS的Indent文件, 能縮進(jìn)@media里面的7. 跟著課件一模一樣的操作使用tp6,出現(xiàn)了錯(cuò)誤8. PHP類屬性聲明?9. javascript - 求助canvas繪制馬賽克的問題,老是取色不準(zhǔn)10. java - 安卓接入微信登錄,onCreate不會(huì)執(zhí)行
