Создание Java-пакета (javac для всех файлов)

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

Ответы

Ответ 1

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

javac *.java

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

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

javac -d bin *.java

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

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

Ответ 2

Здесь описывается другой способ использования "find" в UNIX:

http://stas-blogspot.blogspot.com/2010/01/compile-recursively-with-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

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

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