Создание 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