-1

データベースをダンプするbatファイルがあります。Java で実行したいのですが、JFileChooser を使用してそのダンプ場所を追加したいと考えています。出来ますか?

前もって感謝します

4

1 に答える 1

0

はい、もちろん可能です。1 つの引数 (ダンプ パス) を取るようにバッチを記述します。

次に、JFileChooser を使用してフォルダーの場所を選択し、Java アプリでバッチ ファイルを実行します。次のコードは、2 つのボタンを持つフレームを作成します。1 つはディレクトリを選択し、絶対パスをコマンド文字列に連結するボタンで、もう 1 つはバッチを実行するボタンです。

public class DBDumpExec {

private static final String batchCMD = "myBatch.bat";
public static String directoryChosen = "";

public static void main(String[] args) {
    final JFrame frame = new JFrame("DB Dump Executor");
    frame.setSize(450, 150);
    Container content = frame.getContentPane();
    content.setLayout(new GridLayout(3, 1, 5, 5));

    // Display directory label
    final JLabel directoryLabel = new JLabel();
    // Button to open Dialog
    JButton openDialogButton = new JButton("Open Dialog");
    openDialogButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            JFileChooser chooser = new JFileChooser();
            chooser.setDialogTitle("Select target dump directory");
            chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            File myFile;
            int returnVal = chooser.showOpenDialog(frame);
            if (returnVal == JFileChooser.APPROVE_OPTION) {
                myFile = chooser.getSelectedFile();
                directoryChosen = myFile.getAbsolutePath();
                directoryLabel.setText(directoryChosen + " chosen!");
                System.out.println(myFile.getAbsolutePath());
            }
        }
    });
    // Click this button to run the batch
    JButton executorButton = new JButton("Execute DB");
    executorButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            // Run batch
            try {
                Process process = Runtime.getRuntime().exec(
                        batchCMD + " " + directoryChosen);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    });
    content.add(openDialogButton);
    content.add(directoryLabel);
    content.add(executorButton);
    frame.setVisible(true);
  }
}

Runtime Javadocからコマンドを実行する方法の詳細を参照してください。

于 2013-03-29T16:20:22.913 に答える