Я бы также предложил использовать какой-то инструмент сборки ( Ant или Maven , Ant уже предлагается, и с ним проще начать) или IDE, которая обрабатывает компиляцию (Eclipse использует инкрементную компиляцию со стратегией согласования, и вам даже не нужно нажимайте любые кнопки "Compile" ).
Использование 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
Maven не так уж и прост в настройке и работе, но изучение его стоит хорошо. Вот отличное руководство, чтобы начать проект за 5 минут .
- Его главное преимущество (для меня) заключается в том, что он также обрабатывает зависимости, поэтому вам не нужно больше загружать файлы Jar и управлять ими вручную, и я нашел его более полезным для сборки, упаковки и тестирования более крупных проектов.
- Недостатком является то, что у него крутая кривая обучения, и если плагины Maven любят подавлять ошибки :-) Другое дело, что довольно много инструментов также работают с репозиториями Maven (например, Sbt для Scala, Ivy для Ant, Graddle для Groovy) ,
Использование IDE
Вот что может повысить продуктивность разработки. Есть несколько альтернатив с открытым исходным кодом (например, Eclipse и NetBeans , я предпочитаю первый) и даже коммерческие (например, IntelliJ ), которые довольно популярны и мощны.
Они могут управлять построением проекта в фоновом режиме, поэтому вам не нужно заниматься всеми вещами командной строки. Тем не менее, это всегда удобно, если вы знаете, что на самом деле происходит в фоновом режиме, чтобы вы могли отслеживать случайные ошибки, такие как ClassNotFoundException
.
Еще одно примечание
Для более крупных проектов всегда рекомендуется использовать IDE и инструмент сборки. Первый повышает вашу продуктивность, а второй позволяет использовать с проектом различные IDE (например, Maven может сгенерировать дескрипторы проекта Eclipse с помощью простой mvn eclipse:eclipse
команды). Более того, имея проект, который можно протестировать / построить с помощью однострочной команды, легко представить новым коллегам, например, на сервере непрерывной интеграции. Кусок пирога :-)