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