Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.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
制作自己的JavaIDE_Java_Input_Cmd_Ide_Output - Fatal编程技术网

制作自己的JavaIDE

制作自己的JavaIDE,java,input,cmd,ide,output,Java,Input,Cmd,Ide,Output,我正在尝试制作自己的JavaIDE,但是在显示程序本身之后,从用户那里获取输入时遇到了问题 到目前为止,我已经尝试了两种让控制台出现的方法。 使用 或者使用我自己的代码 void runCommand(String command) { try { ProcessBuilder builder = new ProcessBuilder( "cmd.exe", "/c", command); builder.redirectE

我正在尝试制作自己的JavaIDE,但是在显示程序本身之后,从用户那里获取输入时遇到了问题

到目前为止,我已经尝试了两种让控制台出现的方法。 使用

或者使用我自己的代码

void runCommand(String command)
{
    try {
        ProcessBuilder builder = new ProcessBuilder(
                "cmd.exe", "/c", command);
        builder.redirectErrorStream(true);
        Process p = builder.start();
        BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;
        while (true) {
            line = r.readLine();
            if (line == null) { break; }
            System.out.println(line);
        }
    } catch (IOException ex) {
        Logger.getLogger(FileToClass2.class.getName()).log(Level.SEVERE, null, ex);
    }


}

void createClass(String dir, String filename)
{
    //TODO: stop using exact java path / compile all .java in a dir
    runCommand("cd "+dir+" && \"C:\\Program Files\\Java\\jdk1.8.0_91\\bin\\javac\" " + filename);
}

void runClass(String dir, String filename)
{
    //TODO: allow use of packages etc
    runCommand("cd " + dir + " && java " + filename);
}
上面的代码只是获取cmd终端的输出,这两种方法都存在的问题是缺少输入,比如说用户是否想要执行Scanner nextLine()
有什么解决办法吗?

我认为您创建自己的IDE是为了学习,对吗?这只是一个附带的项目,我有空闲的时间学习yesAnswer,非常好,谢谢。