0

Java プロジェクトでデータベースをエクスポートおよびインポートしようとしましたが、実行コマンドが機能しません。以下は私が行ったコードです。

    public boolean exportDatabase(String fromServer, String FileName, String FilePath, int ExportOpions)
    {

        try {
            Class.forName(Driver).newInstance();
        }
        catch (final InstantiationException e) {
            NLogger.writeDebugLog(e);
        }
        catch (final IllegalAccessException e) {
            NLogger.writeDebugLog(e);
        }
        catch (final java.lang.ClassNotFoundException e) {
        NLogger.writeDebugLog(e);
    }
    try {

        String dbName ="DBsample";
        String dbUser = "root";
        String dbPass ="root";


        String executeCmd ="CD "+FilePath+" mysqldump -u "+dbUser+ "-p"+dbPass+" "+dbName+ ">" +FileName;

        Process runtimeProcess =Runtime.getRuntime().exec(executeCmd);
        int processComplete = runtimeProcess.waitFor();
        if(processComplete == 0){
        System.out.println("Backup taken successfully");
        } 
        else {
        System.out.println("Could not take mysql backup");
        }
    return true;
    }
    catch (final Exception ex) {
        NLogger.writeErrorLog("Database Connection Failed ", ex.toString());
        NLogger.writeDebugLog(ex);
        return false;
    }

}

これは次のようなエラーを示します

「プログラム "CD" を実行できません: CreateProcess エラー = 2、指定されたファイルが見つかりません」

この問題を解決するにはどうすればよいですか?

4

4 に答える 4

2

コマンドを実行している場合は、"cmd"your_command_to_be_run の先頭に追加する必要があります。

次のようにします。

String executeCmd ="cmd CD "+FilePath+" mysqldump -u "+dbUser+ "-p"+dbPass+" "+dbName+ ">" +FileName;

また、エクスポートするコマンドもわかりませんが、コマンドが間違っているようです。ディレクトリを直接指定する必要があります。コマンドで使用cdしています。次の例を検討してください。

C:\mydir1\mydir2\some.exe   // this is correct
cmd cd C:\mydir1\mydir2 some.exe   // this is wrong
于 2012-09-06T09:55:19.430 に答える
1

最初にシステム変数を次のように設定します

C:\Program Files\MySQL\MySQL Server 5.1\bin;

それから

String executeCmd = mysqldump -u "+dbUser+ "-p"+dbPass+" "+dbName+ ">" +FileName;

于 2012-09-06T10:06:10.967 に答える
0

この方法を試すことができます:

try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

    conn = DriverManager.getConnection(DbConnectionAdress, DbName, DbSifre);
    statement = conn.createStatement();
} catch (Exception e) {
    throw new RuntimeException(e);
}

String DbConnectionAdress = " "

DbName = ""

DbSifre = ""
于 2012-09-06T09:59:37.150 に答える
0

これを試して....

文字列 executeCmd ="FilePath+" mysqldump -u "+dbUser+ "-p"+dbPass+" "+dbName+ ">" +FileName;

于 2012-09-06T09:59:55.527 に答える