问个JAVA问题,冒似有点难!

xiaoye 2010-03-31 05:11:07
我想做个JAVA的IDE,通过调用DOS命令javac java来实现编译和运行功能。
但在这里遇到了问题:
对于一般的程序调用java命令运行时是都可以的,直接利用输入流获取运行结果即可,
但对于有System.in.read()之类的需要用户输入的程序时,会有问题,因为它的输出是与用户交互的,因而无法正确输出结果,关于这个问题,我该怎么办?
...全文
354 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoye 2010-04-01
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20100331/20/0e32fe1a-62d7-4794-bf2e-8441c203136d.html
这是我新帖的地址,请大家上去看看,谢谢了!
famesfancy 2010-04-01
  • 打赏
  • 举报
回复
厉害啊,随便看看的
xiaoye 2010-04-01
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 wyz8888 的回复:]
起一个线程,让它一直监听用户输入,如果有用户输入,就触发对应的事件,然后让它继续监听。
楼主,不知道这样行不?
[/Quote]
恩,方法是不错,可是该怎么进行判断呢?还有好多细节方面 的,不太好弄,我试试吧
jaaz 2010-04-01
  • 打赏
  • 举报
回复
起一个线程,让它一直监听用户输入,如果有用户输入,就触发对应的事件,然后让它继续监听。
楼主,不知道这样行不?
xiaoye 2010-04-01
  • 打赏
  • 举报
回复
i没人看了吗
justchenjie 2010-04-01
  • 打赏
  • 举报
回复
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
yang0425cz 2010-03-31
  • 打赏
  • 举报
回复
厉害啊,随便看看的
timetrue 2010-03-31
  • 打赏
  • 举报
回复
嗯回复内容 回复内容太短了
mfc28jacy 2010-03-31
  • 打赏
  • 举报
回复
随便看看。。。。飘过~~~~~
xiaoye 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 doudou15223155621 的回复:]
看来没有明白楼主的意思,惭愧。
[/Quote]

呵呵 ,没事,你能发表意见我已经很感谢了,没代码表达不清,我弄好了代码,一会令开个帖子,发上去,要过去看看啊
qqbz 2010-03-31
  • 打赏
  • 举报
回复
开发IDE可是件不容易的事情。
doudou 2010-03-31
  • 打赏
  • 举报
回复
看来没有明白楼主的意思,惭愧。
zuoguodang 2010-03-31
  • 打赏
  • 举报
回复
为什么要自己写IDE呢,eclipse不就行了,java开发的IDE多了
xiaoye 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 xiaoye 的回复:]
引用 16 楼 doudou15223155621 的回复:
MyEclipse好像也没有在console下提示输入啊。比如说就运行刚才的那个程序,也是程序里System.out.println("请输入:");来提示用户输入的啊。
[/Quote]
哎,看来我得另发一帖,把代码给弄上去。光说是说不明白的了
xiaoye 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 doudou15223155621 的回复:]
MyEclipse好像也没有在console下提示输入啊。比如说就运行刚才的那个程序,也是程序里System.out.println("请输入:");来提示用户输入的啊。
[/Quote]
有提示输入功能啊,JBuilder也you
doudou 2010-03-31
  • 打赏
  • 举报
回复
MyEclipse好像也没有在console下提示输入啊。比如说就运行刚才的那个程序,也是程序里System.out.println("请输入:");来提示用户输入的啊。
zings 2010-03-31
  • 打赏
  • 举报
回复
刚开始也是swing想来的。。。
既然是调用dos命令,看能不能用 dos命令

echo 请输入XX:

进行提示...后面用流接收。。仅供参考!
xiaoye 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 justchenjie 的回复:]
它的光标不是在闪动嘛,你自己输入,Enter。Scanner类就没有什么误差了,你输入什么,他就读出什么
[/Quote]
哎呀,不是这意思!
我写的程序是个JAVA编译环境,类似eclipse,
在eclipse里执行用户输入时就是最下面的输出面板里面进行的,我也想那样实现,不可不知道该什么时候提示用户输入,感觉这里面挺复杂
xiaoye 2010-03-31
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 doudou15223155621 的回复:]
Java code

import java.util.Scanner;
import java.io.*;

public class Test {
public static void main(String[] args) {
System.out.println("请输入:");
System.out.println("你输入的是:"……
[/Quote]
哎呀,不是这意思!
我写的程序是个JAVA编译环境,类似eclipse,
在eclipse里执行用户输入时就是最下面的输出面板里面进行的,我也想那样实现,不可不知道该什么时候提示用户输入,感觉这里面挺复杂
doudou 2010-03-31
  • 打赏
  • 举报
回复

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 "发生异常";
}
}
}

直接在控制台输入就是了,正如楼上所说。我写了两种方法读入你输入的字符串,不知道是不是楼主想要的效果?
加载更多回复(11)

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧