Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从.jar脚本在中启动进程(文件)_Java - Fatal编程技术网

Java 从.jar脚本在中启动进程(文件)

Java 从.jar脚本在中启动进程(文件),java,Java,我目前正试图弄清楚如何运行一个位于我桌面上的文件/应用程序。 在本例中,为了测试所有内容,我创建了一个名为test.bat的批处理文件,其中包含以下命令: @echo msg * hello 这将弹出一个消息框 这应该通过jButton在Netbeans中启动,所以这就是我目前拥有的: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

我目前正试图弄清楚如何运行一个位于我桌面上的文件/应用程序。 在本例中,为了测试所有内容,我创建了一个名为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的文章,但仍然无法找出我做错了什么,因为我通过添加这些行得到了一条错误消息 Runtime rt=Runtime.getRuntime(); 过程pr=rt.exec(“start test.bat”)

对于这一行:

Process pr = rt.exec("start test.bat");
上面说:

未报告异常IOException;必须被抓住或宣布为 扔

如何通过按下按钮启动test.bat文件(可能不是这样)

我也读过其他的帖子,但没有一篇谈论这个

又来了!现在还有解决方案,我已经找到了解决这个错误的方法,所以不要再把这篇文章标记为重复

这是我用试抓得到的,它现在起作用了

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);
    }
} 

这是现在的工作代码:

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);
        }
    }  

我不确定exec是否会使用“start”,因为start不是一个流程。您可能会想执行类似“cmd/k start test.bat”或类似的操作,但这里真正的问题是,由于捕获并抛出了声明,我的脚本无法正常工作……谢谢chrisw69的评论,也很有帮助!