Сборка пакета Java (javac для всех файлов) - PullRequest
13 голосов
/ 01 марта 2010

Как скомпилировать все файлы в каталоге в * .class файлы?

Ответы [ 3 ]

24 голосов
/ 01 марта 2010

Ну, это кажется довольно очевидным, поэтому я могу что-то упустить

javac *.java

(с соответствующими ссылками на библиотеку и т. Д.)

Или, возможно:

javac -d bin *.java

для создания правильной структуры каталогов для вывода.

Вы искали что-то более сложное? Если да, не могли бы вы дать более подробную информацию (а также на какой платформе вы находитесь)?

9 голосов
/ 05 июля 2011

Еще один способ использования find в UNIX описан здесь:

http://stas -blogspot.blogspot.com / 2010/01 / компиляции рекурсивно-с javac.html

Следующие две команды скомпилируют все файлы .java, содержащиеся в каталоге ./src и его подкаталогах:

find ./src -name *.java > sources_list.txt
javac -classpath "${CLASSPATH}" @sources_list.txt

Сначала find генерирует sources_list.txt, файл, который содержит пути к исходным файлам Java. Затем javac компилирует все эти источники, используя синтаксис @sources_list.txt.

3 голосов
/ 01 марта 2010

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

CLASSPATH=
for x in $(find | grep jar$); do CLASSPATH="$CLASSPATH:$x"; done
SRC=$(find | grep java$)
javac -cp "$CLASSPATH" $SRC
...