0

Я пытаюсь скомпилировать весь проект Java с помощью API компилятора. Мои первоначальные мысли о достижении этого - сначала знать, как скомпилировать его в одной строке с помощью командной строки, а затем применить тот же принцип/параметры в объекте компилятора. Проблема в том, что я никогда не делал, err, скомпилированный с использованием CLI. (Недостаток использования IDE? Ха-ха)Компиляция проекта Java с использованием API компилятора

Итак, я на правильном пути? Более того, может ли компиляция проекта достигнута при выполнении одной строки? Мне сложно понять это из-за того, что это проект, он содержит пакеты в изобилии.

+1

По какой-либо причине вы не можете использовать инструмент построения, например [Maven] (http://maven.apache.org/) или [Ant] (http://ant.apache.org/)? – earcam

+0

* «Итак, я на правильном пути?» * Если вы имеете в виду «на правильном пути», сделав это сначала в командной строке, я не вижу смысла. То, как оно реализовано в API компиляции Java, совершенно отличается с точки зрения поиска всех необходимых исходных файлов. Из памяти требуется реализовать ['JavaFileManager'] (http://docs.oracle.com/javase/7/docs/api/javax/tools/JavaFileManager.html). –

+0

@earcam Я на самом деле пытаюсь изучить фактический API, а не разрабатывать проект, который требует от меня сделать это сам по себе. –

ответ

0

Итак, вы либо хотите изучить javac или Java Compiler API?

Если вы хотите CLI компиляция смотрите на javac (Linux | windows).

В качестве альтернативы для API, то программное использование компилятора API в Java, безусловно, требует более, что одна строки, это поможет вам компилятор:

JavaCompilercompiler =ToolProvider. getSystemJavaCompiler();

Тогда вам все равно придется загружать классы, выписывать байт-код и, возможно, пакет как JAR.

Вы должны использовать StandardJavaFileManager, как вы, вероятно, много классов для управления, есть пример в верхней части Javadoc JavaCompiler, но поиск StandardJavaFileManager+JavaCompiler+example найти более четкие примеры, как этот blog post.

 Смежные вопросы

  • Нет связанных вопросов^_^