java 按任意键继续怎么写
4个回答
展开全部
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 程序。
之前是开玩笑的
要实现你所说的功能就必须有一个从标准输入读取数据时不做任何缓存的方法,
即读取一个字节后马上返回的方法(比如视窗平台上 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 程序。
展开全部
直接调用好象没有可行的办法。
右以用JNDI的方式调用C++的DLL来实现。
右以用JNDI的方式调用C++的DLL来实现。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
System.out.print("按任意键继续……");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2楼正解。怕麻烦的话就算用2楼提到的System.in.read( )这个方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询