从lightdm中的stdin读取密码

时间:2014-05-12 09:30:34

标签: java ubuntu stdin

我不知道这是Java还是Ubuntu问题,所以我会在这里发帖。

由于我在startx下工作了一段时间的冒险,从终端启动Eclipse。在一个程序中,我使用Runtime类安装外部驱动器

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);
}

此命令实际上在控制台中显示我的密码,但我仍然无法让程序不要求我输入密码。

除了其他标准之外,应用程序的目标是快速,而且这个密码很烦人。如果你们中有人有任何建议我会很感激。

此致

1 个答案:

答案 0 :(得分:0)

我想使用密码,将其放在属性文件中,以便程序可以轻松地从计算机传输到计算机。无法让它与newline一起使用,所以我修改了mount和umount而不是要求输入密码,我将不得不在手册文件中解释如何。