我创建了一个使用基本Java来帮助我更快地测试Android设备的工具。我正在使用Linux Ubuntu,尝试运行.sh脚本。我用一些按钮创建了一个小JFrame,其中一个按钮打开了(JFileChoser)一个文件夹,它可以正常工作;但是我知道我希望能够选择一个脚本.sh文件,并在我点击“打开”按钮时使其运行。但我似乎无法使它工作!所以这是来自actionclass页面的代码。 请记住,我希望运行.sh脚本文件,并能够在.sh脚本本身上运行该命令。 任何帮助都非常感谢!!!
代码:
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.JPanel;
import javax.swing.filechooser.FileNameExtensionFilter;
public class adbScript extends JPanel implements ActionListener {
private File runfile;
@Override
public void actionPerformed(ActionEvent arg0) {
{
//Handle open button action.
JFileChooser("/home/local/ANT/arthm/Desktop/stuff");
FileNameExtensionFilter filter = new FileNameExtensionFilter(".sh", "sh");
adbfile.setFileFilter(filter);
int returnVal = adbfile.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
runfile = adbfile.getSelectedFile();
//getPath()
try {
Runtime.getRuntime().exec(runfile.getParent());
}
catch (IOException e1) {
// TODO Auto-generated catch block
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);
}
};
}
答案 0 :(得分:0)
在这一行:
runfile = adbfile.getSelectedFile(); // good
Runtime.getRuntime().exec(runfile.getParent());
// this will try to open your sh file's parent folder, it won't execute your sh file
应该是:
Runtime.getRuntime().exec(runfile.getAbsolutePath());