Код: Выделить всё
javax.tools.ToolProvider.getSystemJavaCompiler()Как можно использовать javax.tools.JavaCompiler из пользовательского загрузчика классов?
Например:
- Ant загружает MyParserTask
- анализирует исходный код Java
Код: Выделить всё
MyParserTask - загружается AntClassLoader, который делегирует системному загрузчику классов
Код: Выделить всё
MyParserTask - загружается URLClassLoader, который делегирует системному загрузчику классов
Код: Выделить всё
javax.tools.JavaCompiler
Код: Выделить всё
javax.tools.CompilationTask task = compiler.getTask(...);
com.sun.source.util.JavacTask javacTask = (com.sun.source.util.JavacTask) task;
javacTask.parse().next().accept(visitor, unused); // parsing happens here
- Поскольку эти два класса располагаются в отдельных загрузчиках классов, похоже, у MyParserTask нет способа взаимодействовать с JavacTask > без ошибок ClassCastException.
Подробнее здесь: https://stackoverflow.com/questions/231 ... lassloader