我写了一个C程序,只删除名为myFolder.txt的文件夹 我想从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 :(得分:6)
您已创建了一个流程,然后立即destroy编辑它。当然可执行文件不会运行。请尝试拨打.waitFor()
(或者让它运行)。
答案 1 :(得分: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
文件的完整路径。