• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:java 外部プログラムの実行)

Javaで外部プログラムを実行する方法は?

このQ&Aのポイント
  • Javaで外部プログラムを実行する方法について知りたいです。
  • 私は現在、プログラムAを実行するとプログラムBが実行されるプログラムを作成したいと考えています。
  • ネット上にあるサンプルプログラムを試してみましたが、うまく実行できませんでした。どなたかJavaで外部プログラムを実行する方法についてご存知の方がいらっしゃいましたら、ご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

> java.io.IOException: Cannot run program "C:\Users\sintaro\Desktop\jarr\JarTest.jar": CreateProcess error=193, %1 ??L???? Win32 ?A?v???P Runtimeクラスのexec()メソッドでは、実行可能ファイルだけを指定できます。Windowsではexeファイルやbatファイルなどです。 JarTest.jarは実行可能ファイルとして扱われないので、rt.exec("java -jar JarTest.jar");のようにする必要があります。 > 実行しても何も表示されない状態です. exec()メソッドで呼ばれたほうのプログラム(プログラムB)は結果をどのように表示するプログラムなのでしょうか? プログラムBがSystem.out.println()などで標準出力へ結果を書き出すようなものだとすると、呼び出し側のプログラムAはexec()メソッドの返り値のProcessオブジェクトからgetInputStream()を使って読み出してやる必要があります。読み出したデータをどのように表示するかはプログラムAの自由です。

namamura
質問者

お礼

ご回答ありがとうございます. お陰様で実行することができました. ありがとうございました.

その他の回答 (1)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

具体的に、どのようにやろうとして、どんなエラーになるのですか? マニュアルは読みましたか? http://docs.oracle.com/javase/jp/6/api/java/lang/Runtime.html ・コマンドの指定が間違っている ・実行ファイルが見つからない ・classファイルが見つからない 等が考えられますが、コマンドの引数やエラー内容がわからなければ断言できません。

namamura
質問者

お礼

回答ありがとうございます. ソースコードは, public class Execute02 { public static void main(String[] args) { String filename = "パス"; try { Process proc = Runtime.getRuntime().exec(filename); System.out.println("実行中"); proc.waitFor(); System.out.println("実行終了"); } catch( Exception e ) { System.out.println(e); } } } エラー内容は java.io.IOException: Cannot run program "C:\Users\sintaro\Desktop\jarr\JarTest.j ar": CreateProcess error=193, %1 ??L???? Win32 ?A?v???P と出ています. また,それ以外にも public static void main(String[] args) { try { Runtime rt = Runtime.getRuntime(); rt.exec("java -jar \"パス""); } catch (IOException ex) { ex.printStackTrace(); } } で実行した場合は実行しても何も表示されない状態です.(コンパイルはできます) 以上です. お願いします.

関連するQ&A