本範例示範如何使用 JFileChooser 選擇本地可執行檔,並透過 Runtime.exec() 啟動它。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
public class ChooserRun extends JFrame implements ActionListener {
private JButton btnOpen;
private JTextPane textPane;
private JFileChooser chooser = new JFileChooser();
public ChooserRun() {
super("檔案選擇器啟動程式");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
btnOpen = new JButton("開啟檔案選擇器");
btnOpen.addActionListener(this);
add(btnOpen, BorderLayout.NORTH);
textPane = new JTextPane();
add(new JScrollPane(textPane), BorderLayout.CENTER);
setSize(400, 300);
setLocationRelativeTo(null);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnOpen) {
int result = chooser.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile();
try {
Runtime.getRuntime().exec(file.getAbsolutePath());
textPane.setText("已啟動:" + file.getName());
} catch (IOException ex) {
ex.printStackTrace();
textPane.setText("啟動失敗:" + ex.getMessage());
}
}
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(ChooserRun::new);
}
}
IOException 並回饋給使用者注意:僅能啟動本機可執行檔;若需傳遞參數,請使用
exec(String[])重載。