0
シェルスクリプトは細かい手作業 シェルスクリプトは、Javaプログラムから実行ではないでしょう
- 右バットに注意するには、2つの事が....(エコーハロー)があること私はJavaを使ってうまく実行しました
私はJavaプロセスを実行しようとしているシェルスクリプトを持っています。
File sqlF = new File("path to deploy script");
Process proc = rt.exec(sqlF + "/deploy.sh");
proc.waitFor();
System.out.println(proc.exitValue());
このコードを実行すると、曖昧な戻り値 "1"が返されます。
ここでシェルスクリプト(私は問題はここから生じるかもしれ想像ので)です:
#!/bin/bash
mysql -u XXXX -h XXXXX < XXXXX.sql
mysql -u XXXX -h XXXXX database < DEPLOY-HELPER.sql
が、これは、Javaから正しく実行されないだろう理由として任意のアイデア?あなたはシェルスクリプトを実行したい場合は
あなたのシェルスクリプトで 'set -vx'をオンにして、stderrとstdoutをファイルにリダイレクトして、何が起こっているのかを確認します。まず、mysqlへのパスを設定する必要があると思います。クイックテストの場合は、 'mysql'を'/full/path/to/mysql'に置き換えてください。がんばろう。 – shellter
あなたはlinuxでそれを実行していますか?また、java内でプロセスを呼び出すと、パスをセットアップしたり、システムから変数を適切にインポートしたりしない可能性があります。 – gigadot
@gigadotはい、Linux上です。そして私はそのシェルターを試してみましょう!ありがとう。 – Max