Eu também sugeriria usar algum tipo de ferramenta de construção ( Ant ou Maven , Ant já é sugerido e é mais fácil começar) ou um IDE que lida com a compilação (o Eclipse usa compilação incremental com estratégia de reconciliação, e você nem precisa pressione qualquer botão "Compilar" ).
Usando Javac
Se você precisar tentar algo para um projeto maior e não tiver nenhuma ferramenta de construção adequada por perto, sempre poderá usar um pequeno truque que javac
oferece: os nomes de classe a serem compilados podem ser especificados em um arquivo. Você simplesmente precisa passar o nome do arquivo para javac
com o @
prefixo.
Se você pode criar uma lista de todos os *.java
arquivos em seu projeto, é fácil:
# Linux / MacOS
$ find -name "*.java" > sources.txt
$ javac @sources.txt
:: Windows
> dir /s /B *.java > sources.txt
> javac @sources.txt
- A vantagem é que é uma solução rápida e fácil.
- A desvantagem é que você precisa regenerar o
sources.txt
arquivo sempre que criar uma nova fonte ou renomear um arquivo existente, o que é uma tarefa fácil de esquecer (portanto sujeita a erros) e cansativa.
Usando uma ferramenta de construção
A longo prazo, é melhor usar uma ferramenta projetada para criar software.
Usando Ant
Se você criar um build.xml
arquivo simples que descreve como criar o software:
<project default="compile">
<target name="compile">
<mkdir dir="bin"/>
<javac srcdir="src" destdir="bin"/>
</target>
</project>
você pode compilar o software inteiro executando o seguinte comando:
$ ant
- A vantagem é que você está usando uma ferramenta de construção padrão fácil de estender.
- A desvantagem é que você precisa baixar, configurar e aprender uma ferramenta adicional. Observe que a maioria dos IDEs (como NetBeans e Eclipse) oferece ótimo suporte para gravar arquivos de construção, para que você não precise baixar nada neste caso.
Usando o Maven
O Maven não é tão trivial de configurar e trabalhar, mas aprendê-lo paga bem. Aqui está um ótimo tutorial para iniciar um projeto em 5 minutos .
- Sua principal vantagem (para mim) é que ele também lida com dependências, assim você não precisará baixar mais arquivos Jar e gerenciá-los manualmente, e achei mais útil para criar, empacotar e testar projetos maiores.
- A desvantagem é que ele possui uma curva de aprendizado acentuada, e se os plugins do Maven gostam de suprimir erros :-) Outra coisa é que muitas ferramentas também funcionam com os repositórios do Maven (como Sbt for Scala, Ivy for Ant, Graddle for Groovy) .
Usando um IDE
Agora, o que poderia aumentar sua produtividade de desenvolvimento. Existem algumas alternativas de código aberto (como Eclipse e NetBeans , prefiro a primeira) e até mesmo comerciais (como IntelliJ ) que são bastante populares e poderosas.
Eles podem gerenciar a construção do projeto em segundo plano, para que você não precise lidar com todo o material da linha de comando. No entanto, sempre é útil se você souber o que realmente acontece em segundo plano, para que possa caçar erros ocasionais como um ClassNotFoundException
.
Uma nota adicional
Para projetos maiores, é sempre recomendável usar um IDE e uma ferramenta de construção. O primeiro aumenta sua produtividade, enquanto o último possibilita o uso de IDEs diferentes no projeto (por exemplo, o Maven pode gerar descritores de projeto do Eclipse com um simples mvn eclipse:eclipse
comando). Além disso, é fácil apresentar um projeto que pode ser testado / construído com um comando de linha única para novos colegas e em um servidor de integração contínua, por exemplo. Pedaco de bolo :-)