我想做个JAVA的IDE,通过调用DOS命令javac java来实现编译和运行功能。
但在这里遇到了问题:
对于一般的程序调用java命令运行时是都可以的,直接利用输入流获取运行结果即可,
但对于有System.in.read()之类的需要用户输入的程序时,会有问题,因为它的输出是与用户交互的,因而无法正确输出结果,关于这个问题,我该怎么办?

解决方案 »

  1.   

    简单实现的话,运行的时候调用cmd /c java test
    另外启一个命令行窗口进行运行.
      

  2.   

    如果你做的 ide带有界面的话,可以使用swing的弹出一个对话框或一个窗口,来进行输入。
      

  3.   

    我用的开发工具不支持JDK1.6,就打算用最原始的办法来做
      

  4.   

    我也遇到过的,那个对于数字是差49好像。你换个
    Scanner类吧。那个没问题的
      

  5.   

    它的光标不是在闪动嘛,你自己输入,Enter。Scanner类就没有什么误差了,你输入什么,他就读出什么
      

  6.   


    import java.util.Scanner;
    import java.io.*;public class Test {
    public static void main(String[] args) {
    System.out.println("请输入:");
    System.out.println("你输入的是:" + input1());
    System.out.println("请输入:");
    System.out.println("你输入的是:" + input2());
    } public static String input1() {
    try {
    Scanner scanner = new Scanner(System.in);
    return scanner.next();
    } catch (Exception e) {
    e.printStackTrace();
    return "发生异常";
    }
    } public static String input2() {
    try {
    BufferedReader buffer = new BufferedReader(new InputStreamReader(
    System.in));
    return buffer.readLine();
    } catch (Exception e) {
    e.printStackTrace();
    return "发生异常";
    }
    }
    }直接在控制台输入就是了,正如楼上所说。我写了两种方法读入你输入的字符串,不知道是不是楼主想要的效果?
      

  7.   

    哎呀,不是这意思!
    我写的程序是个JAVA编译环境,类似eclipse,
    在eclipse里执行用户输入时就是最下面的输出面板里面进行的,我也想那样实现,不可不知道该什么时候提示用户输入,感觉这里面挺复杂
      

  8.   

    哎呀,不是这意思!
    我写的程序是个JAVA编译环境,类似eclipse,
    在eclipse里执行用户输入时就是最下面的输出面板里面进行的,我也想那样实现,不可不知道该什么时候提示用户输入,感觉这里面挺复杂
      

  9.   

    刚开始也是swing想来的
    既然是调用dos命令,看能不能用 dos命令 echo 请输入XX: 进行提示...后面用流接收。。仅供参考!
      

  10.   

    MyEclipse好像也没有在console下提示输入啊。比如说就运行刚才的那个程序,也是程序里System.out.println("请输入:");来提示用户输入的啊。
      

  11.   

    有提示输入功能啊,JBuilder也you
      

  12.   

    为什么要自己写IDE呢,eclipse不就行了,java开发的IDE多了
      

  13.   

    开发IDE可是件不容易的事情。
      

  14.   

    http://topic.csdn.net/u/20100331/20/0e32fe1a-62d7-4794-bf2e-8441c203136d.html
    这是我新帖的地址,请大家上去看看,谢谢了!
      

  15.   

    public class Grade
    {  
       public static void main(String[] args)
    {
        System.out.println("请输入成绩:");
        Scanner sc=new Scanner(System.in);
        int str=sc.nextInt();
        if(str<60)
    {  
         System.out.println("不及格");
    }
        if(str>=60&&str<70)
    {  
         System.out.println("及格");
    }
        if(str>=70&&str<80)
    {  
         System.out.println("中等");
    }
        if(str>=80&&str<90)
    {  
         System.out.println("良好");
    }
        if(str>=90)
    {  
         System.out.println("优秀");
    }
    }
    }你看看?在Console里面提示,要不然比就用JOptionDialog