Ответ 1
Я также хотел бы предложить использовать какой-либо инструмент построения (Ant или Maven, Ant уже предлагается и с ним проще начать) или IDE, который обрабатывает компиляцию (Eclipse использует инкрементную компиляцию с помощью стратегии согласования, и вам даже не нужно осторожно нажмите любую кнопку "Скомпилировать").
Использование Javac
Если вам нужно попробовать что-то для более крупного проекта и не располагать подходящими инструментами для сборки, вы всегда можете использовать небольшой трюк, который предлагает javac
: имена классов для компиляции могут быть указаны в файле. Вам просто нужно передать имя файла в javac
с префиксом @
.
Если вы можете создать список всех *.java
файлов в своем проекте, легко:
# Linux / MacOS
$ find -name "*.java" > sources.txt
$ javac @sources.txt
:: Windows
> dir /s /B *.java > sources.txt
> javac @sources.txt
- Преимуществом является то, что это быстрое и простое решение.
- Недостатком является то, что вам необходимо восстановить файл
sources.txt
каждый раз, когда вы создаете новый источник, или переименовываете существующий файл, который легко забыть (таким образом, подвержен ошибкам) и утомительной задачей.
Использование инструмента построения
В долгосрочной перспективе лучше использовать инструмент, предназначенный для создания программного обеспечения.
Использование Ant
Если вы создаете простой файл build.xml
котором описывается, как создать программное обеспечение:
<project default="compile">
<target name="compile">
<mkdir dir="bin"/>
<javac srcdir="src" destdir="bin"/>
</target>
</project>
вы можете скомпилировать все программное обеспечение, выполнив следующую команду:
$ ant
- Преимущество состоит в том, что вы используете стандартный инструмент построения, который легко расширить.
- Недостатком является то, что вам нужно загрузить, настроить и изучить дополнительный инструмент. Обратите внимание: большинство IDE (например, NetBeans и Eclipse) предлагают отличную поддержку для записи файлов сборки, поэтому вам не нужно ничего скачивать в этом случае.
Использование Maven
Мейвен не так уж и ничтожен, чтобы настраивать и работать, но изучение его хорошо оплачивается. Здесь отличный учебник для запуска проекта в течение 5 минут.
- Основное преимущество (для меня) заключается в том, что он также обрабатывает зависимости, поэтому вам больше не нужно будет загружать файлы Jar и управлять ими вручную, и я счел его более полезным для создания, упаковки и тестирования больших проектов.
- Недостатком является то, что он имеет крутую кривую обучения, и если плагины Maven любят подавлять ошибки :-) Другое дело, что довольно много инструментов также работает с репозиториями Maven (например, Sbt для Scala, Ivy for Ant, Graddle for Groovy),
Использование среды IDE
Теперь, что может повысить производительность вашего развития. Есть несколько альтернатив с открытым исходным кодом (например, Eclipse и NetBeans, я предпочитаю бывшие) и даже коммерческие (например, IntelliJ), которые довольно популярны и мощны.
Они могут управлять построением проекта в фоновом режиме, поэтому вам не нужно иметь дело со всей командной строкой. Однако это всегда удобно, если вы знаете, что на самом деле происходит в фоновом режиме, поэтому вы можете выслеживать случайные ошибки, например ClassNotFoundException
.
Еще одно примечание
Для более крупных проектов всегда рекомендуется использовать среду IDE и инструмент сборки. Первая повышает производительность, а вторая позволяет использовать различные IDE-проекты в проекте (например, Maven может генерировать дескрипторы проекта Eclipse с помощью простой команды mvn eclipse:eclipse
). Более того, наличие проекта, который может быть протестирован/построен с помощью одной строки, легко представить для новых коллег и, например, для сервера непрерывной интеграции. Кусок пирога :-)