Java 1.5命令行密码屏蔽

Java 1.5命令行密码屏蔽,java,command-line,passwords,Java,Command Line,Passwords,全部, 我们的服务器正在运行Java1.5,我很难从命令行屏蔽用户输入。我正在执行一个jar文件(java-jar my.jar),并通过printlns处理命令行提示。我不能使用Java控制台 谢谢这里有一篇有趣的文章: 编辑现在我重读了一遍,我认为他们的命令行“解决方案”真的很愚蠢。我们在应用程序中得到的是一个辅助程序,它能够理解如何根据操作系统(Linux、Windows等)屏蔽输入。Java代码侦听套接字上的命令,前端密码读取器获取密码和其他所需的内容,然后向Java代码发送命令。最好的

全部,

我们的服务器正在运行Java1.5,我很难从命令行屏蔽用户输入。我正在执行一个jar文件(java-jar my.jar),并通过printlns处理命令行提示。我不能使用Java控制台


谢谢这里有一篇有趣的文章:


编辑现在我重读了一遍,我认为他们的命令行“解决方案”真的很愚蠢。我们在应用程序中得到的是一个辅助程序,它能够理解如何根据操作系统(Linux、Windows等)屏蔽输入。Java代码侦听套接字上的命令,前端密码读取器获取密码和其他所需的内容,然后向Java代码发送命令。

最好的方法是使用Java 6的readPassword()方法。因为您提到您正在使用Java5,所以这不是一个选项。许多Java6实用程序已经被后移植到Java5。不过,我还没有找到为这门课做过这件事的人


本网站有一篇关于如何使用Java5实现的好文章。基本上,他们用InputStreamReader包装System.in并读取一行

在Unix系统上?在读取程序之前,您可以尝试使用参数
-echo
运行系统程序
stty
,然后再运行程序
stty echo

ProcessBuilder pb = new ProcessBuilder("stty", "-echo");
pb.start().waitFor();
// Read the password here
pb = new ProcessBuilder("stty", "echo");
pb.start().waitFor();

请注意,我没有尝试过这个!有些
stty
程序对它感到满意,有些则不满意(那些不需要stdin的程序来自
/dev/tty
才能正常工作……)

是的,我读了那篇文章,对它没什么印象。如果没有合适的解决方案,我将通过shell脚本将其切换为提示符。您链接到的文章(以及您提到的方法)是如何从命令行读取,而不是如何屏蔽控制台上的输入。根据OP,我想他已经知道如何从STDIN读取值了。