0

我有一个 Java 代码,它在执行时会向用户显示一个 GUI 按钮,然后按下它;将执行一个 bash 脚本。我的脚本可以在终端上运行,但是当我尝试通过 Runtime.getRuntime().exec 在 Java 中运行脚本时,我收到了权限错误。我还在命令中使用了 chmod 777,但都是徒劳的。

**MY Java code is** 
package com.interface_saad;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import java.io.File;
/**
 *
 * @author Saad
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    static JFrame fr=new JFrame("QoS");
    static JPanel button_pan=new JPanel();
    static JButton QoSButton=new JButton("QoS");

    public static void main(String[] args) throws IOException {

    final File file = null;

        button_pan.add(QoSButton);
        fr.add(button_pan,BorderLayout.CENTER);
        fr.setVisible(true);
        fr.setSize(200,200);

 QoSButton.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
                try {
                    System.out.println("path");
                    Runtime.getRuntime().exec("chmod 777 /home/talal/enable.sh");
                    Runtime.getRuntime().exec("./ /home/talal/enable.sh");

                } catch (Exception ex) {
                    System.out.println(ex);
                }


            }
        });


        fr.setDefaultCloseOperation(fr.EXIT_ON_CLOSE);
    }

}

我的 bash 脚本是 enable.sh

#!/bin/sh

(sleep 2
echo root
sleep 2
echo admin
sleep 1

echo '/usr/sbin/svqos status `get_wanface` 0'
sleep 2


echo '/usr/sbin/svqos `nvram get wshaper_downlink` `nvram get wshaper_uplink` `get_wanface` `nvram get wan_mtu` 0 '

sleep 1
echo '/usr/sbin/svqos status `get_wanface` 0'

sleep 4) | telnet 192.168.1.1 -l root 

需要建议。我迫切需要帮助。

4

0 回答 0