我必须从我的Java程序中打开一个.exe文件。因此我首先尝试了以下代码。
Process process = runtime.exec("c:\\program files\\test\\test.exe");
但是我遇到了一些错误。然后我发现该exe必须从c:// program files / test /的位置启动,然后才可以正常打开。因此,我决定编写一个.bat文件并执行,以便将其CD到该位置并执行.exe文件。
以下是我的代码:
BufferedWriter fileOut; String itsFileLocation = "c:\\program files\\test\\" System.out.println(itsFileLocation); try { fileOut = new BufferedWriter(new FileWriter("C:\\test.bat")); fileOut.write("cd\\"+"\n"); fileOut.write("cd "+ itsFileLocation +"\n"); fileOut.write("test.exe"+"\n"); fileOut.write("exit"+"\n"); fileOut.close(); // Close the output stream after all output is done. } catch (IOException e1) { e1.printStackTrace(); } // Create the Buffered Writer object to write to a file called filename.txt Runtime runtime = Runtime.getRuntime(); try { Process process =runtime.exec("cmd /c start C:\\test.bat"); } catch (IOException e) { e.printStackTrace(); }
上面的代码运行完美。但是,命令提示符也在我的.exe(应用程序)的背面打开。仅在.exe文件退出后关闭。
当我的应用程序统计信息时,我需要单击命令提示符。
该程序写入后,我的.bat文件将如下所示。
cd\ cd C:\Program Files\test\ test.exe exit
您不需要控制台。您可以使用工作目录执行流程:
exec(String command,String [] envp,File dir)
在具有指定环境和工作目录的单独进程中执行指定的字符串命令。
关于您的代码应该是…
Runtime.getRuntime().exec("c:\\program files\\test\\test.exe", null, new File("c:\\program files\\test\\"));