我一直在研究如何 java.io.Console
实现了 readPassword
函数,我遇到了原生的 echo
函数。出于天生的好奇,我立即着手寻找源代码。我尝试查看 jdk/src/share/native
但无济于事。在进一步谷歌搜索失败后,我求助于您。
我在哪里可以找到 native echo
函数的源代码?
最佳答案
这是http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/windows/native/java/io/Console_md.c
JNIEXPORT jboolean JNICALL
Java_java_io_Console_echo(JNIEnv *env, jclass cls, jboolean on)
{
DWORD fdwMode;
jboolean old;
if (! GetConsoleMode(hStdIn, &fdwMode)) {
JNU_ThrowIOExceptionWithLastError(env, "GetConsoleMode failed");
return !on;
}
old = (fdwMode & ENABLE_ECHO_INPUT) != 0;
if (on) {
fdwMode |= ENABLE_ECHO_INPUT;
} else {
fdwMode &= ~ENABLE_ECHO_INPUT;
}
if (! SetConsoleMode(hStdIn, fdwMode)) {
JNU_ThrowIOExceptionWithLastError(env, "SetConsoleMode failed");
}
return old;
}
关于java - 在java中查找 native 函数的源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28173959/