Сборка пакета Java (javac для всех файлов)

Некоторые базовые оболочки пропускают команды вроде «find», а некоторые из их команд не поддерживают рекурсию. В этом случае вы можете использовать этот скрипт для запуска нужной команды во всех поддиректорах в дереве:

CDIR=$(pwd)
for i in $(ls -R | grep :); do
    DIR=${i%:}                    # Strip ':'
    cd $DIR
    $1                            # Your command
    cd $CDIR
done

Если вы назовете вышеупомянутое «recurse.sh», используйте:

./recurse.sh <command>

Пример (измените владельца / группу на «root» всех файлов в дереве):

./recurse.sh "chown 0:0 *"
13
задан Vytas 1 March 2010 в 15:20
поделиться

2 ответа

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

javac *.java

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

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

javac -d bin *.java

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

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

24
ответ дан 1 December 2019 в 19:23
поделиться

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

CLASSPATH=
for x in $(find | grep jar$); do CLASSPATH="$CLASSPATH:$x"; done
SRC=$(find | grep java$)
javac -cp "$CLASSPATH" $SRC
3
ответ дан 1 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

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