Java 在lightdm中读取stdin的密码
我不知道这是Java还是Ubuntu的问题,所以我会在这里发布 由于一个bug,我在startx下工作了几天,从终端开始Eclipse。在一个程序中,我使用Runtime类安装了一个外部驱动器Java 在lightdm中读取stdin的密码,java,ubuntu,stdin,Java,Ubuntu,Stdin,我不知道这是Java还是Ubuntu的问题,所以我会在这里发布 由于一个bug,我在startx下工作了几天,从终端开始Eclipse。在一个程序中,我使用Runtime类安装了一个外部驱动器 String[] command = {"gksu", "mount", "/dev/sdb1", "mounter/sdb"}; Runtime.getRuntime().exec(command); 每次我都会被提示输入密码。所以我写了这个 String pwd = "mypassword"; S
String[] command = {"gksu", "mount", "/dev/sdb1", "mounter/sdb"};
Runtime.getRuntime().exec(command);
每次我都会被提示输入密码。所以我写了这个
String pwd = "mypassword";
System.setIn(new ByteArrayInputStream(pwd.getBytes()));
命令在不要求密码的情况下执行良好(也适用于sudo-S
)
但现在我又开始做lightdm了,但这不起作用。使用gksu
时,每次都会提示我输入密码,sudo-S
不做任何操作
String input;
while((input=new BufferedReader(new InputStreamReader(System.in)).readLine()) != null) {
System.out.println(input);
}
这个命令实际上会在控制台中显示我的密码,但我仍然无法让程序不向我询问密码
该应用程序的目标是,除其他标准外,速度要快,而这个密码问题相当烦人。如果你们有什么建议,我将不胜感激
关于我想使用密码,把它放在一个属性文件中,这样程序就可以很容易地从一台计算机转移到另一台计算机。无法使其与newline一起使用,因此我修改了mount和umount以不要求密码,然后我必须在手动文件中解释如何使用。srsly。。。你正在试图解决一个你不应该遇到的问题。如果你真的需要将你的pw硬编码到你的应用程序中,你就做错了。如果您真的想在不输入密码的情况下装载这些东西,请配置您的系统,以便您的程序也不需要输入密码。(另外,您在密码后缺少一个换行符-这可能是由于最简单的示例,不知道)如果您根据启动X的方式获得不同的行为,那么我建议您在两种模式下从提示符运行“env”,并比较不同的行为。我怀疑在从lightdm运行时,您的会话中设置了一些(功能?),但在从startx运行时没有设置