【问题标题】:How do I execute the decode -t 17 in Linux through Java?如何通过 Java 在 Linux 中执行 decode -t 17?
【发布时间】:2014-05-31 01:58:16
【问题描述】:

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

【问题讨论】:

  • 你必须对你的程序进行 sudo。
  • sudo dmidecode -t17传给getRuntime.exec有什么区别
  • @OneOfOne 你输入得比我快 :-)
  • @OneOfOne 我给了它 sudo dmidecode -t 17 但没用
  • @E Carter Young dmidecode –t 17 with sudo 在前面也没有结果

标签: java linux eclipse ubuntu dmi


【解决方案1】:

你有很多选择:

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

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

chgrp $usergroup /usr/sbin/dmidecode

chmod g+s /usr/sbin/dmidecode

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    相关资源
    最近更新 更多