文件沒有找到我想要運行javac編譯在Solaris區域muiltiple文件,我可以做手工,但我下面的代碼是不工作:的javac:在Solaris中
try {
File directory = new File(dir);
ProcessBuilder builder = new ProcessBuilder(dirJava, allfiles);
builder.directory(directory);
builder.redirectErrorStream(true);
Process process = builder.start();
InputStreamReader isr = new InputStreamReader(process.getInputStream());
BufferedReader br = new BufferedReader(isr);
String lineRead;
while ((lineRead = br.readLine()) != null) {
System.out.println("> "+lineRead);
}
process.waitFor();
}
catch (IOException e) {
System.out.println("Could not convert files: "+e.getMessage());
}
在創作的ProcessBuilder
dirJava = 「/usr/jdk/instances/jdk1.6.0/bin/javac」
DIR = 「/選擇/ glassfish3 /的glassfish /域/域1 /溫度/ 1b504235dc6be0558532a7b7bf27 /」
allfiles( AC低於15個完整的文件路徑)oncatenation =
「/opt/glassfish3/glassfish/domains/domain1/temp/1b504235dc6be0558532a7b7bf27/methods/String_Distance/u/StringWrapper.java /選擇/ glassfish3 /的glassfish /域/ DOMAIN1 /溫度/ 1b504235dc6be0558532a7b7bf27 /方法/ String_Distance/U/DistanceInstanceIterator.java /opt/glassfish3/glassfish/domains/domain1/temp/1b504235dc6be0558532a7b7bf27/methods/String_Distance/u/StringDistance.java 的/ opt/glassfish3/GlassFish中/域/ DOMAIN1 /溫度/ 1b504235dc6be0558532a7b7bf27 /方法/ String_Distance/U/StringWrapperIterator.java /opt/glassfish3/glassfish/domains/domain1/temp/1b504235dc6be0558532a7b7bf27/methods/String_Distance/u/Tokenizer.java /opt/glassfish3/glassfish/domains/domain1/temp/1b504235dc6be0558532a7b7bf27/methods/String_Distance/u/Jaccard.java /opt/glassfish3/glassfish/domains/domain1/temp/1b504235dc6be0558532a7b7bf27/methods/String_Distance/u/BasicToken.java /opt/glassfish3/glassfish/domains/domain1/temp/1b504235dc6be0558532a7b7bf27/methods/String_Distance/u/BasicStringWrapper.java /opt/glassfish3/glassfish/domains/domain1/temp/1b504235dc6be0558532a7b7bf27/methods/String_Distance/u/StringDistanceLearner.java /opt/glassfish3/glassfish/domains/domain1/temp/1b504235dc6be0558532a7b7bf27/methods/String_Distance/u/DataTownMain.java /opt/glassfish3/glassfish/domains/domain1/temp/1b504235dc6be0558532a7b7bf27/methods/String_Distance/u/BagOfTokens.java /opt/glassfish3/glassfish/domains/domain1/temp/1b504235dc6be0558532a7b7bf27 /方法/ String_Distance/U/Token.java /opt/glassfish3/glassfish/domains/domain1/temp/1b504235dc6be0558532a7b7bf27/methods/String_Distance/u/SimpleTokenizer.java 的/ opt/glassfish3/GlassFish中/域/域1 /溫度/ 1b504235dc6be0558532a7b7bf27 /方法/ String_Distance/U/AbstractStringDistance.java /opt/glassfish3/glassfish/domains/domain1/temp/1b504235dc6be0558532a7b7bf27/methods/String_Distance/u/DistanceInstance.java」
用javac過程中的錯誤:文件未找到:/ opt/glassfish3/glassfish/domains/...'(錯誤列出了所有15個文件的完整路徑)
但是如果我進入命令中的'dir'目錄提示並用空格鍵入'javac',然後從文件未找到的完整15個文件路徑中找到錯誤消息(逐字複製)該命令的工作原理,併爲與.java文件位於同一目錄中的所有文件生成.class文件。 (我已經檢查過,在我的代碼中allfiles和dir變量中沒有前導或尾隨空格)。我想這可能是因爲'dir'中的最後一個目錄是在運行時基於sessionId創建的,所以我嘗試了'dir'=「/ opt/glassfish3/glassfish/domains/domain1/temp /」(它存在於運行時間之前),並且仍然失敗,但是如果我手動進入該目錄,只需鍵入具有完整15個文件路徑名的javac即可。有任何想法嗎?