JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
compiler.run(System.in , System.out ,System.err, "/home/visruth/Desktop/Sample.java");
サンプル.java:
public class Sample {
public static void main(String... args) {
System.out.println("Hello world");
}
}
上記のコードは私にとってはうまくいきます。
指定したパス"D:/data/jeeViews/projects/seds/vcvd/main/com/vcvd/servlet/Dispatcher.java"
が有効であることを確認してください。にコードを投稿してくださいDispatcher.java
。内部で他のクラスを参照すると、この例外も発生する可能性があるためです。たとえば、Sample.java が存在する場所と同じ場所に、別の Another.java ファイルも存在するとします。上記のSample.javaを次のように変更すると、クラスパスから別のクラスを参照するため、この例外が発生する可能性があります。Another another = new Another();
public class Sample {
public static void main(String... args) {
// makes exception as it is not in the class path.
// to avoid exception make it available in the class path.
Another another = new Another();
System.out.println("Hello world");
}
}
Another.java :
public class Another {
//codes........
}
より良い解決策は、ant のようなビルド ツールを使用することです。