###前提・実現したいこと
①画面のリクエストされたパラメータをjavaで受取る
②java から シェル に①のパラメータを渡して実行
③シェル から python に①のパラメータを渡して実行
※シェルにてpythonの仮想環境をactivateしているため上記の手順となっています。
###現状の確認状況
①、②は確認できています。
③についてですが、ターミナル上にてシェルを実行する場合は 正常に 仮想環境がactivate されpythonが実行できていることは確認できましたが、javaから ProcessBuilder にてシェル実行した場合 pythonが実行されません。
###該当のソースコード
(JAVA)
Process process = new ProcessBuilder("sh","xx/xxx/xx.sh" ,param1,param2).start();
String text;
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
BufferedReader reader = new BufferedReader(isr);
StringBuilder builder = new StringBuilder();
int c;
while ((c = reader.read()) != -1) {
builder.append((char)c);
}
// 実行結果を格納
text = builder.toString();
int ret = process.waitFor();
System.out.println(text); System.out.println(ret);
(シェル)
コメ!/bin/sh
コメ 実行開始ログを出力する。
echo "JRAから最新のオッズを取得します。"
echo $1
echo $2
. $HOME/scrape/bin/activate
cd $SRCDIR/jraCrawlweekend/weekendInfoGet
python JraCrawlFromJava.py $1 $2
echo "python JraCrawlFromJava.py $1 $2"
deactivate
###実行時のjavaコンソール
JRAから最新のオッズを取得します。
1
pw151ouS306201705030820171209Z/22
python JraCrawlFromJava.py 1 pw151ouS306201705030820171209Z/22
0
###補足情報(言語/FW/ツール等のバージョンなど)
Java:1.8.0_6
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。