1

我创建了一个使用基本 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);
   }
  };
}      
4

1 回答 1

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());
于 2013-09-12T20:17:57.487 回答