如果让JAVA在console模式下面,不用等到敲回车,当用户输入一个字节后,就读取一个字

hzfxjun 2006-06-28 11:52:53
如果让JAVA在console模式下面,不用等到敲回车,当用户输入一个字节后,就读取一个字
...全文
721 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
caoxiongjun 2006-06-30
  • 打赏
  • 举报
回复
路过学习!
禽兽v5 2006-06-30
  • 打赏
  • 举报
回复
sswater(光杆兵)
不要说得那么绝对。
我提供的项目它里面应该是用网络io流处理的,完全没有用jni。我们在win/linux/solaris下都可以正常运行。
低调的小青蛙 2006-06-30
  • 打赏
  • 举报
回复
除了 JNI ,没有其他办法。

因为 System.in 是属于标准输入流。键盘敲入的内容需要 Enter 才输入。
晨星 2006-06-29
  • 打赏
  • 举报
回复
好像没有办法,关注。
dongdong715 2006-06-29
  • 打赏
  • 举报
回复
yuzl32(Hello!有酒醉) ( ) 信誉:106

不错,这方法简单,,高手就是高手。
leon528 2006-06-29
  • 打赏
  • 举报
回复
up
huxinsheng168 2006-06-29
  • 打赏
  • 举报
回复
up
syhan 2006-06-29
  • 打赏
  • 举报
回复
来学习了
hzfxjun 2006-06-29
  • 打赏
  • 举报
回复
up
yuzl32 2006-06-29
  • 打赏
  • 举报
回复
用System.in是没办法实现这个功能的,因为它本身就被设计成为需要Enter才可以输入
可以换一种方式实现(JNI):
public class WithoutEnter
{

public static native int getch();
static
{
System.loadLibrary("WithoutEnter");
}
public static void main(String[] args) throws Exception
{
int b = getch();
while((char)b != 'X')
{
System.out.println("输出:" + (char)b);
b = getch();
}
}

}

// JNI 部分
#include "jni.h"

JNIEXPORT jint JNICALL Java_WithoutEnter_getch(JNIEnv *env, jclass cls)
{
return getch();
}

afengonline 2006-06-29
  • 打赏
  • 举报
回复

在主程序中起个demon进程

让它监听system.in的输入
禽兽v5 2006-06-29
  • 打赏
  • 举报
回复
可以的,参考Java Telnet daemon项目源码
http://sourceforge.net/projects/telnetd
agu 2006-06-29
  • 打赏
  • 举报
回复
是个好办法,但jni方法我总觉得不好!没有其他办法吗?

62,616

社区成员

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

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