Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

Processのコマンド実行について

JDK1.8(Win8&Linux(CentOS6))

本番のLinux機にはインストールされるソフトウエアがあり、
開発機のWindowsでも問題なくJavaからコマンド実行できるようにしたいです。

Win機では、環境変数(&のpath)に「0」を設定し、追加すればできるかと思ったのですが、
batファイルを設けなければ「0」を取得できませんでした。

実際のコマンド tstcmd prm1

●Javaからの呼び出し

String[] cmdLine = {"cmd.exe","/c","tstcmd prm1"};
Process p = new Process(cmdLine);
↑Linuxでは「cmd.exe /c」は省略。

pathの通っているディレクトリにtstcmd.batを作成し、echo 0を返せば取得でき、コマンドプロンプトで実行しても0が返ってきます。

tstcmd.batの絶対パスを指定しての実行(cmd.exe /c c:/usr/local/tstcmd prm1)は避けたいのですが、環境設定も含め、どのようにしたらよいでしょうか?(tstcmd prm1で実行したい)


ご助言頂ければ幸いです。

3

回答

699

閲覧

3件の回答

評価

0

大抵は、外部コマンドを実行したいなら環境によって変えるかどうかに関わらずプロパティから読み込む。

評価

0

ありがとうございます。
私もはじめ、プロパティファイルに仕込んでましたが、お気に召さないようで、上記の構成にして欲しいとの事でした。。
このようなマニアックな構成も初めてで・・どのように実現したらいいか悩んでいます。

評価

0

exec(String[],String[],File)のFileにそのディレクトリを渡せば実行できると思うが。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。