0

我需要通过Java执行decode -t 17。但是它需要root权限。所以我想执行su -i更改为root然后执行decode命令。但是没有任何反应。请帮助:

btnNewButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            textArea.setText("");
            repaint();
             try{
                 p = Runtime.getRuntime().exec("sudo -i");
                 p.waitFor();
                 p.destroy();
                 p = Runtime.getRuntime().exec("dmidecode –t 17");
                 BufferedReader br = new BufferedReader(
                     new InputStreamReader(p.getInputStream()));
                 while ((s = br.readLine()) != null)
                     textArea.setText(s);
                 p.waitFor();
                 p.destroy();
                 p = Runtime.getRuntime().exec("su - mayooran");
                 p.waitFor();
                 p.destroy();
                 }
             catch(Exception e)
             {

             }
        }
     });
     btnNewButton.setBounds(404, 89, 119, 34);
     contentPane.add(btnNewButton);
4

1 回答 1

0

你有很多选择:

1- 您可以编写将 dmidecode 的静态输出写入世界可读文件的脚本,或者您可以使用其他信息源(例如 /proc/meminfo )。

2-在外壳上执行以下操作:

chgrp $usergroup /usr/sbin/dmidecode

chmod g+s /usr/sbin/dmidecode

于 2014-05-31T02:07:03.620 回答