Java打开cmd并使用ProcessBuilder执行命令

Java打开cmd并使用ProcessBuilder执行命令,java,javafx,Java,Javafx,我试图制作一个ide只是为了好玩,我不知道为什么,但我不想打开cmd并执行两个命令:一个用于编译,一个用于运行编译后的文件 这就是我的processbuilder的外观: ProcessBuilder process = new ProcessBuilder("cmd.exe", "/c", "start", "/k", "javac", "EkkoFunIde.java", "java", "EkkoFunIde.class"); 但是什么也没发生,没有例外,但当我只有这个: Pro

我试图制作一个ide只是为了好玩,我不知道为什么,但我不想打开cmd并执行两个命令:一个用于编译,一个用于运行编译后的文件

这就是我的processbuilder的外观:

    ProcessBuilder process = new ProcessBuilder("cmd.exe", "/c", "start", "/k", "javac", "EkkoFunIde.java", "java", "EkkoFunIde.class");
但是什么也没发生,没有例外,但当我只有这个:

ProcessBuilder process = new ProcessBuilder("cmd.exe", "/c", "start");
它确实打开了cmd

我这样写文件:

ObservableList<CharSequence> paragraph = area.getParagraphs();
        Iterator<CharSequence>  iter = paragraph.iterator();
        try {
            BufferedWriter bf = new BufferedWriter(new FileWriter(file));
            while(iter.hasNext()) {
                CharSequence seq = iter.next();
                bf.append(seq);
                bf.newLine();
            }
            bf.flush();
            bf.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
observeListParague=area.GetParagions();
迭代器iter=段落迭代器();
试一试{
BufferedWriter bf=新的BufferedWriter(新文件编写器(文件));
while(iter.hasNext()){
CharSequence seq=iter.next();
bf.追加(seq);
bf.newLine();
}
bf.flush();
bf.close();
}捕获(例外e){
e、 printStackTrace();
}

进程启动后,我将删除该文件。

您忘记调用
start
(关于ProcessBuilder类的文章顶部的示例):


不,我没有忘记我只是没有把它贴在这里
...
process.start();