質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

Q&A

解決済

4回答

6374閲覧

Javaにおいての外部プロセス起動について

Ogiwara

総合スコア26

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Processing

Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

0グッド

0クリップ

投稿2016/08/26 12:36

編集2016/08/26 13:26

Intellijにおいて、外部プロセスを起動(runtimeに"java -version"を指定)するJavaコスソールアプリケーションを作成したのですが、何故かプロセスが起動しない(つまりjava -versionが実行されない)です

CMD.EXE /C DIR c:¥¥Windows¥¥
は成功したので、コードのミスではないと思います

どうすれば良いでしょうか?

追加、具体的なコード

lang

1import java.io.*; 2 3/** 4 * Created by ogiwara on 2016/08/26. 5 */ 6public class PTest { 7 8 public static void main(String[] args){ 9 String result; 10 try { 11 Runtime rt = Runtime.getRuntime(); 12 Process p = rt.exec("java -version"); 13 InputStream is = p.getInputStream(); 14 InputStreamReader isr = new InputStreamReader(is); 15 BufferedReader br = new BufferedReader(isr); 16 while((result = br.readLine()) != null ){ 17 System.out.println(result); 18 } 19 }catch (IOException e){ 20 e.printStackTrace(); 21 } 22 } 23}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

flied_onion

2016/08/26 13:13

java.exeへのPATHは通っているんでしょうか。つまり、スタートメニューなどから普通にコマンドプロンプトを開いてそのまま `java -version`はうまくいく状態ですか?
Ogiwara

2016/08/26 13:20

環境変数の設定は完了していますね
flied_onion

2016/08/26 13:22

コードの追加ありがとうございます。ただコードはコードブロック( ``` で括るか、コードを選択して code ボタン)にした方が見やすくなります。
Ogiwara

2016/08/26 13:25

なるほど、そういった機能があるとは知りませんでした ご教授ありがとうございます!
p5info

2016/10/06 05:19

Processingとは関係がありませんのでProcessingタグを取り除いていただけますか
guest

回答4

0

ご質問の内容とは少し外れますが、
Java7以降であれば、外部プロセス起動で標準入出力をリダイレクトするのに
ProcessBuilder.inheritIO()メソッドを使うと楽です。

下記の質問に少し詳しく書きましたので、もし良かったら試してみて下さい。

Java - Javaからシェルを実行したいのですが(45520)|teratail
https://teratail.com/questions/45520

投稿2016/08/26 13:38

argius

総合スコア9388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

java -version は標準エラー出力に出力されています

コマンドプロンプトで java -version 2>NUL とすると出力されません。

なので、

// InputStream is = p.getInputStream(); InputStream is = p.getErrorStream();

としてください。

投稿2016/08/26 13:27

flied_onion

総合スコア2604

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ogiwara

2016/08/26 13:30

この方法で解決しました! ご教授感謝します
guest

0

参考情報

投稿2016/08/26 21:00

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

"java.exe -version" でどうスかね。
だめならフルパスで。

投稿2016/08/26 13:15

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ogiwara

2016/08/26 13:22

やってみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問