2 つのクラスを生成するコードを作成し、それらをバッファリングして JavaCompiler でコンパイルしました。私のクラスは .java ファイルではこのようになっています。
public class A{
public A() { }
public String toString(){ return "A";}
}
と
public class B extends ArrayList<A> {
public B() {
super();
}
public void addItem(A a)
{
this.add(a);
}
public void print() {
this.print();
}
}
このようなもの。
ただし、クラスの名前はランダムに生成され、ファイルを作成すると次のようなエラーが発生します。
symbol: class A
location: class B
./src/A.java:4: error: cannot find symbol
(4行目は「...extends ArrayList...」で、Aの下に^記号があります)
私のコード ジェネレーターは次のようにコンパイルされます。
最初に、A 型クラスのテンプレートでバッファーを埋めてから、次のようにコンパイルします。
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
compiler.run(null, null, null, f.getPath());
その後、別のバッファーを作成し、B 型クラスのテンプレートを入力してから、次のようにコンパイルします。
System.out.println(f.getParentFile().getPath());
compiler.run(null, null, null, f.getPath());
fは;
f = new File(("./src/" + name + ".java"));
どうすればこの問題を解決できますか?