java任意键继续_java 按任意键继续怎么写

匿名用户

1级

2013-04-25 回答

press any key to continue

之前是开玩笑的

要实现你所说的功能就必须有一个从标准输入读取数据时不做任何缓存的方法,

即读取一个字节后马上返回的方法(比如视窗平台上 C/C++ 头文件 conio.h 里声明的 getch( ) )。

可惜的是,到目前为止,Java 里没有这种方法。

就连返回一个字节的 System.in.read( ) 也要等到碰上回车才返回(行缓存,即 line-buffered)。

所以现在你唯一的选择就是通过本机接口(JNI)调用本机方法(native method)。

步骤有 6 个。以下是装有 VC6 的视窗平台上的实现范例:

1)编写我们的 Java 程序。在程序里,以 native 这个关键字为将被调用的本机方法做本机声明,

并且加载我们将在第 5 步里创建的动态连接库:

public class PressAnyKeyToContinue {

static native void pause( ); // 本机声明

public static void main( String[ ] args ) {

System.loadLibrary( "PressAnyKeyToContinue" ); // 加载我们的动态连接库

pause( ); // 调用本机方法跟调用一般的方法没两样

}

}

2)编译我们的 Java 程序,以便生成类文件。

3)用 javah.exe 生成对应的 C/C++ 头文件(PressAnyKeyToContinue.h):命令是 javah PressAnyKeyToContinue 。

4)实现头文件里声明的所有方法 / 函数(这例子用 C,所以以下的代码是在 PressAnyKeyToContinue.c 里):

#include "PressAnyKeyToContinue.h"

JNIEXPORT void JNICALL Java_PressAnyKeyToContinue_pause( JNIEnv * jenv, jclass jc ) {

system( "pause" );

}

5)用编译器生成动态连接库:

命令是 cl -Ic:\jdk2\include -Ic:\jdk2\include\win32 -LD PressAnyKeyToContinue.c 。

(当然,假设了 c:\jdk2\ 是 JDK 的路径。)

6)运行我们的 Java 程序。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值