2
try {                               
try {
    String[] command = {"cmd.exe", "/C", "Start", "D:\\test.bat"};
        Runtime r = Runtime.getRuntime();
        Process p = r.exec(command);
        p.waitFor();

    } catch (Exception e) {
        e.printStackTrace();
        JOptionPane.showMessageDialog(this, "Error" +"Execution!","Error",JOptionPane.ERROR_MESSAGE);
        }
    } catch (IOException ex) {
        Logger.getLogger(DBBackUp.class.getName()).log(Level.SEVERE, null, ex);
    }

このコードを実行すると、コマンド プロンプトしか表示されません。.bat ファイルが実行されていません。このコードを使用してバッチ ファイルを実行するにはどうすればよいですか?

少し早いですがお礼を

4

3 に答える 3

1

次のようなことを試すことができます:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;


public class BatchExecuteService {

    public static void main(String[] args) {
        BatchExecuteService batchExecuteService = new BatchExecuteService();
        batchExecuteService.run();
    }

    public void run() {
        try {
            String cmds[] = {"D:\\test.bat"};
            Runtime runtime = Runtime.getRuntime();
            Process process = runtime.exec(cmds);
            process.getOutputStream().close();
            InputStream inputStream = process.getInputStream();
            InputStreamReader inputstreamreader = new InputStreamReader(inputStream);
            BufferedReader bufferedrReader = new BufferedReader(inputstreamreader);
            String strLine = "";
            while ((strLine = bufferedrReader.readLine()) != null) {
                System.out.println(strLine);
            }
        } catch (IOException ioException) {
            ioException.printStackTrace();
        }
    }
}
于 2013-03-31T15:20:31.767 に答える