我刚开始用的是eclipse 3.1,写一程序运行很流畅;后来我又在机器上装了个eclipse 3.3。这时我在3.1上运行源程序时,发现它会卡在一句代码处-----moudleID = usrid.readLine();便不再往下走了
代码如下:
public static void main(String[] args) {
String hostname="127.0.0.1";
String moudleID="";
//int port=DEFAULT_PORT;
try {
System.out.println("请输入中间件服务器地址:");
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
hostname = br.readLine();
System.out.println("请输入模块名:");
BufferedReader usrid = new BufferedReader(
new InputStreamReader(System.in));
moudleID = usrid.readLine();
} catch (IOException e) {
e.printStackTrace();
}
try {
InetAddress ia = InetAddress.getByName(hostname); SenderThread sender = new SenderThread(ia, DEFAULT_PORT,moudleID); sender.start(); ReceiverThread receiver = new ReceiverThread(sender.getSocket()); receiver.start(); } catch (UnknownHostException e) {
System.err.println(e);
} catch (SocketException e) {
e.printStackTrace();
} }
把3.3删了后还是如此,这是为什么?如何解决?
代码如下:
public static void main(String[] args) {
String hostname="127.0.0.1";
String moudleID="";
//int port=DEFAULT_PORT;
try {
System.out.println("请输入中间件服务器地址:");
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
hostname = br.readLine();
System.out.println("请输入模块名:");
BufferedReader usrid = new BufferedReader(
new InputStreamReader(System.in));
moudleID = usrid.readLine();
} catch (IOException e) {
e.printStackTrace();
}
try {
InetAddress ia = InetAddress.getByName(hostname); SenderThread sender = new SenderThread(ia, DEFAULT_PORT,moudleID); sender.start(); ReceiverThread receiver = new ReceiverThread(sender.getSocket()); receiver.start(); } catch (UnknownHostException e) {
System.err.println(e);
} catch (SocketException e) {
e.printStackTrace();
} }
把3.3删了后还是如此,这是为什么?如何解决?
moudleID = usrid.readLine();便不再往下走了
这个代码当然不能往下走了啊。这个要你输入"值"按回车,然后才能执行下文啊。
koko你说的什么呢,看不懂呀..楼主,直接用br 读取试试
System.out.println("请输入中间件服务器地址:");
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
hostname = br.readLine(); System.out.println("请输入模块名:");
moudleID = br.readLine();
String hostname = "127.0.0.1";
String moudleID = "";
// int port=DEFAULT_PORT;
try {
System.out.println("请输入中间件服务器地址:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
hostname = br.readLine();
System.out.println("请输入模块名:");
BufferedReader usrid = new BufferedReader(new InputStreamReader(System.in));
moudleID = usrid.readLine();
} catch (IOException e) {
e.printStackTrace();
}
}这段代码在我的3.3上没有任何问题,楼主不行就到 cmd 里面运行你的程序看看吧!
BufferedReader reader=new BufferedReader(new StreamReader(System.in));
try {
System.out.println("请输入中间件服务器地址:");
hostname = reader.readLine(); System.out.println("请输入模块名:");
moudleID = reader.readLine(); } catch (IOException e) {
e.printStackTrace();
}或是下面这样应该也可以://释放资源后在new第二个实例,但这的确有点浪费
try {
System.out.println("请输入中间件服务器地址:");
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
hostname = br.readLine();
br.close(); System.out.println("请输入模块名:");
BufferedReader usrid = new BufferedReader(
new InputStreamReader(System.in));
moudleID = usrid.readLine(); //或者把br.close()放到这句之前应该也可以
usrid.close(); } catch (IOException e) {
e.printStackTrace();
}