Runtime.getRuntime 経由で Java から同じコマンドを実行すると、リターン コード 6 が返されます。同じコマンドは、コマンド ラインから正常に動作します。
process = Runtime.getRuntime().exec(mysqldumpCommand);
int processComplete = process.waitFor();
これらの 2 つのコマンドについては、Java から実行し、ダンプなしで実行すると、戻りコード 6 が返されます。コマンドラインからは正常に動作します(ローカル環境にパスワードがありません。)
mysqldump --user=root --password= --host=localhost dbname > c:\temp\dumpfile.sql
mysqldump --user=root --password="" --host=localhost dbname > c:\temp\dumpfile.sql
故意に間違ったパスワードを入力すると、Java でリターン コード 2 が返され、コマンド ラインで接続エラーが発生します。
mysqldump --user=root --password= --host=localhost dbname > c:\temp\dumpfile.sql
ここで見つけたリターンコード:
Taken from client/mysqldump.c in MySQL 5.1.59:
#define EX_USAGE 1
#define EX_MYSQLERR 2
#define EX_CONSCHECK 3
#define EX_EOM 4
#define EX_EOF 5 /* ferror for output file was got */
#define EX_ILLEGAL_TABLE 6
Java で同じコマンドを実行すると (エラー) リターン コード 6 が返され、コマンド ラインから正常に動作するのはなぜですか?
後で編集:Windowsから試します。