プロが教える店舗&オフィスのセキュリティ対策術

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringWriter;

public class Tese {
public static void main(String[] args) throws InterruptedException,
IOException {
★ ProcessBuilder pb = new ProcessBuilder("cmd", "/C", "dir", "C:\\Program Files\\Java"); ★
Process p = pb.start();

BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
Catcher c = new Catcher(br);
c.start();

p.waitFor();
p.destroy();

System.out.println(c.out.toString());
}
}

class Catcher extends Thread {
Reader in;
StringWriter out = new StringWriter();
public Catcher(Reader in) {
this.in = in;
}

public void run() {
int c;
try {
while ((c = in.read()) != -1) {
out.write((char)c);
}
} catch (IOException e) {
e.printStackTrace();
}

}

★で囲んでいる部分なのですが,コンパイルすると
Exception in thread "main" java.lang.Error: コンパイル問題が未解決です。
コンストラクター ProcessBuilder(String, String, String, String) は未定義です。

at Tese.main(Tese.java:10)
というエラーが出ます.
どうすればエラーが消えるかわかる方いらっしゃったら,ぜひ助言頂けないでしょうか・へj

A 回答 (2件)

> 今Eclipse SDKのバージョン:3.2.0を使っています.



Javaランタイム(JRE)のバージョンは? これが1.4以下だったら1.5以上に上げて下さい。まあ、最近インストールしたのだと1.6系だと思うので問題はないでしょうが、一応確認のこと。
それで問題なければ、Eclipseの設定でJavaのコンパイラーの項目を開き、コンパイラー準拠レベルが1.4になっていると思うので、5.0か6.0にして下さい。
それでコンパイルできるようになると思います。

Eclipseは初期設定ではコンパイラー準拠レベルを低い設定にしているようです。古いJREでも実行できるようにという配慮でしょうか。
    • good
    • 0
この回答へのお礼

お礼が遅くなって申し訳ありません..
おかげさまでエラーが消えました(^^)
本当にありがとうございます♪
ただまた一つ問題が,,また投稿させてもらおうと思ってますので答えて頂けたらとっても嬉しいです..
本当にありがとうございました☆

お礼日時:2008/07/19 16:26

ProcessBuilderがないと言っていますね.


ProcessBuilderは,Java1.5から導入されたものですから
それ以前のバージョンを使っているとダメだと思いますが
Jdkのバージョンは1.5以上の物を使っていますか?

この回答への補足

返信ありがとうございます..
今Eclipse SDKのバージョン:3.2.0を使っています.
もしバージョン1.5以内だと無理ですか??
processBuilderを使わずに外部プログラムを実行するのは無理ですか??
もしよろしければ返信ください(つj)

補足日時:2008/07/17 20:18
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!