いつもお世話になっています。
タイトルのとおり外部プログラムの実行方法についてです。
現在プログラムAを実行するとプログラムBが実行されるプログラムを作成できないかと考えています。
少し調べてみたところ外部プロセスの実行がそれにあたるかと思うのですが、ネット上にあるサンプルプログラムを実行してみてもコンパイルこそできるものの実行がエラーになってしまいます。
以下のサイトを参考にしていますが、サンプルにある通りのメモ帳の実行は出来ますが,javaプログラムの実行はできない状態です。
http://syunpon.com/programing/java/sample/execut …
私の考えているようなことはjavaで実装可能なのでしょうか?
ご存知の方おられましたらご教授お願いします。
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の自由です。
No.1
- 回答日時:
具体的に、どのようにやろうとして、どんなエラーになるのですか?
マニュアルは読みましたか?
http://docs.oracle.com/javase/jp/6/api/java/lang …
・コマンドの指定が間違っている
・実行ファイルが見つからない
・classファイルが見つからない
等が考えられますが、コマンドの引数やエラー内容がわからなければ断言できません。
回答ありがとうございます.
ソースコードは,
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
- Windows 10 Windowsのタイムスケジューラーについての質問です。 先日、Webスクレイピング用のプログラムを 1 2022/09/28 05:51
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# 現在プログラムを作っているのですが、実行したときに写真のように結果が表示されるのですが、これを CH 2 2023/01/18 16:22
- その他(プログラミング・Web制作) Pythonでexcelのvbaを作成、実行する方法について Pythonで表の自動集計プログラムを 3 2022/07/09 09:58
- C言語・C++・C# 参考にいろいろとc言語、c++言語プログラミングでレジストリーを操作したいのですが、無料配布のc++ 3 2022/12/22 01:49
- その他(プログラミング・Web制作) マウスを使用してpowershellのプログラムを起動して、引数リストを渡したい 1 2022/11/07 21:39
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- その他(プログラミング・Web制作) フォルダ内の特定 拡張子のファイルを一括実行するBat ファイルについて 4 2022/04/17 09:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javascriptの値をJava(JSP)へ渡...
-
split関数で区切り文字がない場合
-
javacでStackOverflowError
-
JAVAにのeclipseに関する質問で...
-
「ワークスペースをビルド中」...
-
java 外部プログラムの実行
-
eclipse で実行時のコマンドを...
-
eclipseでスタックサイズを変更...
-
eclipseのjavaを実行できない
-
Eclipseで作成したクラスを他の...
-
eclipseが使えません
-
JAVAの質問です。 ( String arg...
-
バイナリーコードと、ソースコ...
-
Eclipse 実行→Javaアプリケー...
-
Worksheet_Changeが動かない
-
Eclipse(JAVA)のデバッグで他...
-
エクセルマクロエラー'Global'...
-
AntでのJunitの試験(II)
-
[JAVA]evalで文字列を計算式に!
-
forte for javaのjspエンジ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
split関数で区切り文字がない場合
-
Javascriptの値をJava(JSP)へ渡...
-
Eclipse(JAVA)のデバッグで他...
-
「ワークスペースをビルド中」...
-
JAVAにのeclipseに関する質問で...
-
eclipseでスタックサイズを変更...
-
jasper.exceptionとは?
-
Javaで年月の取得(YYYYMM形式で)
-
コミット前の更新データをチェ...
-
eclipseのjavaを実行できない
-
Javascriptのパーミッション
-
Worksheet_Changeが動かない
-
Eclipse 実行→Javaアプリケー...
-
eclipseで「サーバーで実行」表...
-
javascriptで、style undefined...
-
環境変数設定で
-
エクリプスで実行時、最新クラ...
-
Struts2でアプリが実行できません
-
Eclipseで実行>Javaアプリケー...
-
eclipse実行ができない
おすすめ情報