Как установить путь к классу, когда я использую javax.tools. JavaCompiler компилируют источник?

Это достаточно коротко, как это, но я, вероятно, перенесся бы, это в некоторого помощника функционирует с ясным именем. Тем путем более очевидно, что продолжается, и Вы не должны будете повторять, что логика во всех шаблонах, где Вам нужен он.

39
задан Pascal Thivent 14 October 2009 в 03:06
поделиться

1 ответ

Метод javax.tools.JavaCompiler # getTask () принимает параметр options , который позволяет установить параметры компилятора. Следующее сообщение описывает простой способ их установки для доступа к пути к классам вызывающей программы:

Вам необходимо настроить стандартную java файловый менеджер, чтобы узнать о jar-файлы - вы используете компилятор аргумент options для этого.

По умолчанию объект компилятора java только кажется знает о дефолте места для bootclasspath, extdirs и одобренные каталоги в терминах пути к классам.

Вам необходимо добавить вызывающую программу текущий путь к классам компилятора java экземпляра, который передается стандартный файловый менеджер, который затем найдите классы в файлах jar.

Вот как я это делаю в компиляторе написал я оболочку

 Список  optionList = new ArrayList  ();
// устанавливаем путь к классам компилятора таким же, как у среды выполнения
optionList.addAll (Arrays.asList ("- путь к классам", System.getProperty ("java.class.path")));

// любые другие варианты, которые вы хотите
optionList.addAll (Arrays.asList (параметры));

JavaCompiler.CompilationTask task = compiler.getTask (out, jfm, диагностика, optionList, null, jfos);

Все, что вам нужно, это установить правильный путь к классам при запуске вызывающей программы.

39
ответ дан 27 November 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: