1

私の質問はこれです。ターミナルからいくつかの adb コマンドを実行しています。ツールを書きました。それは物事をより簡単にするのに役立ちます。質問に戻りますが、コマンドを実行するには、端末で「パスワード」を入力する必要があります。では、「パスワード」部分を JOptionPane.showInputDialog ボックスに表示するにはどうすればよいでしょうか。

これが私がこれまでに持っているものです:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;

import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter;


public class flash implements ActionListener {
    private File runfile;
    @Override
    public void actionPerformed(ActionEvent arg0) {
        {


            JFileChooser adbflashfile = new JFileChooser("/home/local/ANT/arthm/Desktop/os"); 
           FileNameExtensionFilter filter = new FileNameExtensionFilter(".py", "py");

                adbflashfile.setFileFilter(filter);

            int returnVal = adbflashfile.showOpenDialog(null);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                runfile = adbflashfile.getSelectedFile();

                try {
                    Runtime.getRuntime().exec("sudo python ./flashimage.py");
                } catch (IOException e1) {

                    e1.printStackTrace();
                }
                //This is where a real application would open the file.
                System.out.println("File: " + runfile.getName() + ".");    
            } else {
                JOptionPane.showMessageDialog(null, "Open command cancelled by user.");
            }
            System.out.println(returnVal);
        }
    };
    }
4

2 に答える 2

0

クラスを使用して、子プロセスの I/O をリダイレクトできますProcess。出力を監視し、子プロセスに入力 (パスワード) を提供できるはずです。

見る:

于 2013-09-16T23:32:55.153 に答える