2016-04-28 14 views
0

私はプログラムで.sqlファイルをMySQLにインポートしようとしています。 .sqlファイルはmysqldumpによって生成されました。私はJavaプログラムでこれを動的に実行しようとしています。しかし、それはJava内の "<"文字で失敗し続けます(私は思う)。デバッガの中で実行しようとしているコマンドのデバッガの文字列(以下の「結合された」変数)を取得してコマンドラインに貼り付けると正常に動作します。同様に、このプログラムの中でmysqldumpを動作させようとすると、 ">"文字に失敗し、それを動作させるには "--result-file ="引数に置き換えなければなりませんでした。Javaコードを使用して.sqlファイルをMySQLにインポートする

String command = mySqlPath + "mysql.exe"; 
    String user = "-u " + settings.dbUser; 
    String password = "-p" + settings.dbPassword; 
    String db = settings.dbDatabase; 
    String inputFile = filePath + mySqlDumpFile; 

    String combined = command + " " + user + " " + password + " " + db + " < " + inputFile; 

    ExternalCommandExecuter ece = new ExternalCommandExecuter(combined); 
    int code = ece.execute(); 

これは、コマンドラインに貼り付ける1の終了コードになりますし、それがうまくいくどの

C:\software\mysql5\bin\mysql.exe -u root -p<password> 
db_name < C:\software\tomcat7\webapps\ROOT\WEB-INF\documents\dump-1461789460425.sql 

例えば、この文字列になります。

+1

しかし、なぜこのすべてのトラブルに行きますか – e4c5

+0

何十ものダンプがあり、ソフトウェアはクライアントに、webappを使用して異なる時点にジャンプする機能を提供します。 – bluedevil2k

+0

いいえ、セットアップ方法は、SQLダンプファイルが電子メールでローカルに送信されるためです。 – bluedevil2k

答えて

0

"<"のファイルをインポートしてJavaで動作させることができませんでした。代わりに、Javaコードから呼び出す外部.sh/.batファイルを作成する必要がありました。

関連する問題