• 締切済み

バッチ起動したいのですが…

javaからバッチを起動したいのですが、以下の記述ではうまくいきません。動作として、具体的には、バッチからあるプログラムを起動し、for文によって、プロンプトがエンドレスに表示され続けるという動作をするはずなのですが、エラーは出ないのにうまくできません。ただし、バッチから起動するプログラムのファイルを、同じjavaのワーキングディレクトリに入れるとうまく動作します。ただ、この方法だと、融通が利かないし、ディレクトリがごちゃごちゃしてしまうので、使えません。 自分の中では、パスの問題なのだろうかと思うのですが、どうすればうまくいくのでしょうか? try { Process p = Runtime.getRuntime().exec("C:\\10\\UI.bat"); } catch (IOException ex) { System.out.println("erorr"); ex.printStackTrace(); }

みんなの回答

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.2

想像で物言うの続きですが、そのC++プログラムは、出力先~出力環境をカレントディレクトリとして書かれているので、“同じjavaのワーキングディレクトリに入れるとうまく動作"するんでしょうね。問題の、うまく動作しないときには、プログラムはどこに置かれているんですか?。なにしろ、そこが、プログラムにとってはカレントディレクトリなんですよ。

  • _ranco_
  • ベストアンサー率58% (126/214)
回答No.1

PATHの設定が妥当か、検討してください。 そのバッチファイルから別のJavaプログラムを起動しているのであれば、CLASSPATHについても検討してください。

matsutake0
質問者

補足

_ranco_さん ご回答ありがとうございます。 >PATHの設定が妥当か、検討してください。 PATHの設定というのは,J2SEをインストールする時に設定するもののこと ですか?それとも、 Process p = Runtime.getRuntime().exec("C:\\10\\UI.bat"); のC:\\10\\UI.batの部分のことですか? >そのバッチファイルから別のJavaプログラムを起動しているのであれば、 >CLASSPATHについても検討してください。 すいません。説明が足りなかったようなので、補足させて頂きますと,バッチから起動しているプログラムはjavaではなくC++で記述されたプログラムになります。この前提で動作させるためのアドバイスを頂けたらと思います。 行き詰ってしまってて、本当に困っています。お助け下さい。

関連するQ&A