2011-12-25 51 views
2

我寫了一個C程序,簡單地刪除名爲myFolder.txt的文件夾
我想從java應用程序執行.exe文件。
於是,我用下面的代碼:從java應用程序執行.exe文件

try 
{ 
    Runtime rt = Runtime.getRuntime() ; 
    Process p = rt.exec("program2.exe") ; 
    p.destroy() ; 
}catch(Exception exc){/*handle exception*/ 
System.out.println("ERROR"); 
    } 

當我運行出現任何錯誤我的Java應用程序,但文件不會被刪除。

爲什麼?

+0

沒有C程序運行良好。它測試是否有一個名爲Myfolder.txt的txt文件,如果是,它會將其刪除 我試圖從命令行運行.exe,並且每件事情都可以 – user1077980 2011-12-25 08:32:16

+0

1)爲什麼不使用J2SE文件刪除文件API? 2)如果使用'exec',一定要閱讀並執行[Runtime.exec()不會]時的所有建議(http://www.javaworld.com/javaworld/jw-12-2000/jw- 1229-traps.html)。 3)'exc.printStackTrace()'在運行時輸入時間更短,信息量更大。 – 2011-12-25 08:40:51

回答

6

你已經創建了一個進程,然後立即destroy編輯它。當然,可執行文件不會運行。嘗試撥打.waitFor()(或讓它運行)。

+0

是的..這就是問題 該文件現在被刪除 謝謝你 – user1077980 2011-12-25 08:32:46

2

我認爲program2.exe可能不在Java項目的類路徑中。

try { 
    Runtime rt = Runtime.getRuntime() ; 
    Process p = rt.exec("program2.exe") ; // @1 
    //p.destroy() ; // @2 
} catch (Exception exc) { 
    /*handle exception*/ 
    System.out.println("ERROR"); 
} 

@ 1 - 檢查exe文件的路徑。

@ 2 - 無需手動銷燬該過程,它將在完成其過程後自動結束。

您可以檢查進程是否啓動,運行Java項目 - 立即進入任務管理器 - 進程 - 如果有進程運行,稱爲program2.exe,則進程啓動,否則不啓動進程。如果沒有啓動,沒有例外 - 那麼exe文件路徑是一個問題,請試着給出exe文件的完整路徑。