我目前正试图弄清楚如何运行位于桌面上的文件/应用程序。 在这种情况下,为了测试一切,我创建了一个名为 test.bat 的批处理文件,里面有命令:
@echo
msg * hello
将弹出一个消息框。
这应该在带有jButton的Netbeans中启动,所以这就是我目前所拥有的:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("msg * hello");
}
然而,每次按下该按钮,都没有任何反应。
另外,我在stackoverflow上阅读了几篇帖子,但仍然无法弄清楚我做错了什么,因为我通过添加这些行得到错误消息 运行时rt = Runtime.getRuntime(); 处理pr = rt.exec(“start test.bat”);
这一行:
Process pr = rt.exec("start test.bat");
其中说:
未报告的异常IOException;必须被抓住或宣布为 抛出
如何通过按下按钮启动(可能是其他方式)test.bat文件?
我已阅读其他帖子,但他们都没有谈论此IOExceptions。
AGAIN!现在有解决方案,我已经找到了这个错误,所以停止将这个帖子标记为重复....
这就是我用try catch获得的,它现在正在工作。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Runtime rt = Runtime.getRuntime();
try {
Process pr = rt.exec("msg * hello");
} catch (IOException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
答案 0 :(得分:0)
现在是工作代码:
String programFilesx86= System.getenv("ProgramFiles(X86)");
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Runtime rt = Runtime.getRuntime();
try {
Process pr = rt.exec("cmd /k start \"\" \""+programFilesx86+"\\Folder\\test.exe\" " );
} catch (IOException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}