Cmd 使用Java应用程序打开.Bat

Cmd 使用Java应用程序打开.Bat,cmd,Cmd,我试图使用java+打开CMD,并向其应用代码以打开一个.jar,因此应用程序输出显示在.bat文件中。 有人能告诉我怎么做吗 这是它得到的代码,它确实在文件中运行,但是CMD没有显示 btnTest.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String Bat = "C:"+File.separatorChar+"Us

我试图使用java+打开CMD,并向其应用代码以打开一个.jar,因此应用程序输出显示在.bat文件中。 有人能告诉我怎么做吗

这是它得到的代码,它确实在文件中运行,但是CMD没有显示

btnTest.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            String Bat = "C:"+File.separatorChar+"Users"+File.separatorChar+"Gebruiker"+File.separatorChar+"AppData"+File.separatorChar+"Local"+File.separatorChar+"Temp"+File.separatorChar+"hexT"+File.separatorChar+"run.bat";
            Runtime rt = Runtime.getRuntime();
            try {
                rt.exec(Bat);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    });

编辑:这对我有用:

String Bat = "C:\\app.bat";  //Try to use \\ as path seperator

try {
    Runtime.getRuntime().exec("cmd /c start " + Bat);
} catch (IOException e) {
    e.printStackTrace();
}
定义如下:

FileWriter writer;
然后在尝试/捕获过程中执行以下操作:

    try {
        writer = new FileWriter("test.txt");
        Process child = rt.exec(Bat);
        InputStream input = child.getInputStream();
        BufferedInputStream buffer = new BufferedInputStream(input);
        BufferedReader commandResult = new BufferedReader(new InputStreamReader(buffer));
        String line = "";
        try {
            while ((line = commandResult.readLine()) != null) {
         writer.write(line + "\n");              
            }
        writer.close();

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

这将逐行读取作为缓冲区的输出并将其写入文本文件

向我们展示您的代码并解释什么不起作用。“输出显示在.bat文件中”是什么意思?它运行一个.jar,它的输出与调试内容类似,当我手动运行.bat文件时,它确实起作用。它确实加载应用程序和.bat文件,但是我仍然没有得到输出。tempofile.txt是创建的吗?是的,它对我也有效,但我需要咨询来继续运行它。现在当执行一次时,它关闭了。对不起,我不理解你的问题。让什么保持运转?当.jar加载时,.bat文件停止运行,但它应该保持活动状态以从.jar文件获取输出。