2011-12-25 20 views
2

私は、単にmyFolder.txtというフォルダを削除するCプログラムを作成しました。
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

+0

1)J2SEファイルAPI? 2) 'exec'を使用する場合は、[Runtime.exec()が実行されない場合]の推奨事項をすべて読んで実装してください(http://www.javaworld.com/javaworld/jw-12-2000/jw- 1229-traps.html)。 3) 'exc.printStackTrace()'は、実行時にタイプする方が短く、より有益です。 –

答えて

6

プロセスを作成してすぐにdestroyを編集しました。もちろん、実行ファイルは実行されません。代わりに.waitFor()に電話してみてください。

+0

はい..それは問題でした ファイルは今削除されました ありがとう – user1077980

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ファイルのフルパスを入力してみてください。

関連する問題