我遇到了一個奇怪的問題。我在Windows 7 SP1 64位下安裝了Java JRE 7 64位。我還安裝了帶有C/C++編譯器的Visual Studio 2010 IDE。我試圖通過Java Runtime Exec執行cl.exe命令來獲得編譯器生成版本。運行Java運行時運行時在Microsoft C++中缺少啓動橫幅
當我打開cmd.exe shell並執行目錄「C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE」中的.. \ .. \ VC \ bin \ cl.exe時,獲得此輸出:
Microsoft(R)32位C/C++優化編譯器版本16.00.40219.01(適用於80x86) 版權所有(C)Microsoft Corporation。版權所有。
用法:CL [選項...] ...文件名[/鏈接linkoption ...]
但是,當我在Java運行時內執行相同的命令,我得到這樣的輸出:
使用:cl [option ...] filename ... [/ link linkoption ...]
輸出不包含2行啓動橫幅。我需要啓動橫幅才能擁有編譯器版本以及內部版本號。
我使用的執行命令的Java的模板是:
public static void main(String[] args) {
try {
Process p = Runtime.getRuntime().exec("cmd /d /c chdir /d C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\Common7\\IDE && ..\\..\\VC\\bin\\cl");
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
我猜想中的cl.exe過程是能夠理解到其啓動的背景和禁用啓動旗幟。任何想法如何獲得啓動橫幅?
(忘了打回來。)有多個地方寫輸出。 –