如何通过Java在Linux上执行decode - 17



我需要通过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);

你有很多选择:

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

2-在shell上执行以下操作:

chgrp $usergroup/usr/sbin/dmidecode

chmod g + s/usr/sbin/dmidecode

相关内容

  • 没有找到相关文章

最新更新