Использование API компилятора Java для компиляции нескольких файлов Java

Привет, у меня есть требование создавать, компилировать и загружать время выполнения Java-классов. Используя FTL, я создаю исходные файлы java и могу скомпилировать исходный код, если нет динамической зависимости.

Для подробностей с экземпляром у меня есть два исходных файла java, один интерфейс и его класс реализации. Я могу скомпилировать интерфейс с помощью java compiler api следующим образом

String classpath=System.getProperty("java.class.path");
        String testpath =classpath+";"+rootPath+"/lib/is_wls_client.jar;"+rootPath+"/rtds_wls_proxyclient.jar;.;";
        File javaFile =  new File(javaFileName+".java");
        JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
        List<String> optionList = new ArrayList<String>();
        optionList.addAll(Arrays.asList("-classpath",testpath));
        StandardJavaFileManager sjfm = compiler.getStandardFileManager(null, null, null);
        Iterable fileObjects = sjfm.getJavaFileObjects(javaFile);
        JavaCompiler.CompilationTask task = compiler.getTask(null, null, null,optionList,null,fileObjects);
        task.call();
        sjfm.close();

Я установил путь к классам для статических классов, которые уже находятся в пути к классам, но этот подход не работает для динамически создаваемых классов? Любой пользовательский загрузчик классов исправит ошибку? Моя окончательная реализация будет на веб-сервере / сервере приложений

Мы будем очень благодарны за любые отзывы

Satheesh

6
задан Satheesh Cheveri 2 February 2012 в 12:52
поделиться