0

次のような Java プログラムからデータベース インポート コマンドを実行しようとしています。

public class Test {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        String[] str = {"imp ASKUL/askul@ASKDB file=askdbinstall.dmp log=askul.log fromuser=askul touser=ASKUL full=N ignore=Y grants=Y indexes=Y;"};
        Process pro;
        try {
            pro = Runtime.getRuntime().exec(str);
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

エラー出力は次のとおりです。

java.io.IOException: Cannot run program "imp ASKUL/askul@ASKDB file=askdbinstall.dmp log=askul.log fromuser=askul touser=ASKUL full=N ignore=Y grants=Y indexes=Y;": CreateProcess error=2, The system cannot find the file specified

ファイルaskdbinstall.dmpが存在するのは、CMDで同じコマンドを貼り付けると、データベースのダンプが正常にインポートされるためです。私のミスとは?

追加:Reimius Suggestionから、これも試しました:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.InputStream;
public class Tes {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
      try {
          String [] cmd = {"imp", "ASKUL/askul@ASKDB file=askdbinstall.dmp", 
                "log=askul.log", "fromuser=askul", "touser=ASKUL", 
                "full=N ignore=Y grants=Y indexes=Y;"};
     Process process = Runtime.getRuntime().exec(cmd);
     InputStream in = process.getInputStream();
     InputStreamReader ins=new InputStreamReader(in);
     BufferedReader br = new BufferedReader(ins);
     String data = null;
     while ((data = br.readLine()) != null) {
        System.out.println(data);
     }
   } catch (Exception e) {
    System.out.println(e);
   }
   }
} 

出力

run:
BUILD SUCCESSFUL (total time: 3 seconds)

インポートは行われていません。

4

1 に答える 1