【初心者】Java質問・相談スレッド70【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0284216と224です
2005/08/27(土) 07:44:24例えば、まずダミーのA.javaを作る
class A {
String hello() {
return null;
}
}
そして、
import java.io.*;
class Test {
public static void main(String args[]) {
try {
String str = "class A {\n\nString hello() {\nreturn \"Hello AA\";\n}\n\n}";
BufferedWriter bw = new BufferedWriter(new FileWriter("A.java"));
bw.write(str);//-------------------------------------------------------�@
bw.close();
Process process = Runtime.getRuntime().exec("javac A.java");//---------�A
InputStream is = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
} catch(Exception e) {
e.printStackTrace();
}
A a = new A();//------------------------------------------------------------�B
System.out.println(a.hello());
}
}
を実行すると、コンソールには null が出力されてしまう。でも、この時点でA.javaは書き換えられている。
もう1度実行すると、今度は Hello A が出力される。
�Aは、�@で作られた A.java をコンパイルしている。 しかし、�Bが参照しているのは�@によって書き換えられる前の物のようだ。。
これって、読み取りの一貫性を保つため??(オラクルのような)
�Bが�Aでコンパイルされた物を参照するにはどうすればいいのでしょうか
■ このスレッドは過去ログ倉庫に格納されています