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

解决方案 »

  1.   


    在主程序中起个demon进程让它监听system.in的输入
      

  2.   

    用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();
    }
      

  3.   

    yuzl32(Hello!有酒醉) ( ) 信誉:106 不错,这方法简单,,高手就是高手。
      

  4.   

    是个好办法,但jni方法我总觉得不好!没有其他办法吗?
      

  5.   

    可以的,参考Java Telnet daemon项目源码
    http://sourceforge.net/projects/telnetd
      

  6.   

    除了 JNI ,没有其他办法。因为 System.in 是属于标准输入流。键盘敲入的内容需要 Enter 才输入。
      

  7.   

    sswater(光杆兵)
    不要说得那么绝对。
    我提供的项目它里面应该是用网络io流处理的,完全没有用jni。我们在win/linux/solaris下都可以正常运行。