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