Solución:
También sugeriría usar algún tipo de herramienta de compilación (Ant o Maven, Ant ya está sugerido y es más fácil comenzar con) o un IDE que maneje la compilación (Eclipse usa compilación incremental con estrategia de reconciliación, y usted ni siquiera tiene que hacerlo). cuidado de presionar cualquier “Compilar” botones).
Usando Javac
Si necesita probar algo para un proyecto más grande y no tiene ninguna herramienta de construcción adecuada cerca, siempre puede usar un pequeño truco que javac
ofertas: los nombres de clase a compilar se pueden especificar en un archivo. Simplemente tienes que pasar el nombre del archivo a javac
con el @
prefijo.
Si puede crear una lista de todos los *.java
archivos en su proyecto, es fácil:
# Linux / MacOS
$ find -name "*.java" > sources.txt
$ javac @sources.txt
:: Windows
> dir /s /B *.java > sources.txt
> javac @sources.txt
- La ventaja es que es una solución rápida y sencilla.
-
El inconveniente es que hay que regenerar el
sources.txt
file cada vez que crea una nueva fuente o cambia el nombre de un archivo existente, lo cual es una tarea fácil de olvidar (por lo tanto, propensa a errores) y tediosa.
Usando una herramienta de construcción
A largo plazo, es mejor utilizar una herramienta diseñada para crear software.
Usando Ant
Si crea un simple build.xml
archivo que describe cómo construir el software:
<project default="compile">
<target name="compile">
<mkdir dir="bin"/>
<javac srcdir="src" destdir="bin"/>
</target>
</project>
puede compilar todo el software ejecutando el siguiente comando:
$ ant
- La ventaja es que está utilizando una herramienta de construcción estándar que es fácil de ampliar.
- El inconveniente es que tienes que descargar, configurar y aprender una herramienta adicional. Tenga en cuenta que la mayoría de los IDE (como NetBeans y Eclipse) ofrecen un gran soporte para escribir archivos de compilación para que no tenga que descargar nada en este caso.
Usando Maven
Maven no es tan fácil de configurar y trabajar con él, pero aprenderlo vale la pena. Aquí hay un gran tutorial para comenzar un proyecto en 5 minutos.
- Es la principal ventaja (para mí) es que también maneja dependencias, por lo que no necesitará descargar más archivos Jar y administrarlos a mano y lo encontré más útil para construir, empaquetar y probar proyectos más grandes.
- El inconveniente es que tiene una curva de aprendizaje pronunciada, y si a los complementos de Maven les gusta suprimir errores 🙂 Otra cosa es que muchas herramientas también operan con repositorios de Maven (como Sbt para Scala, Ivy para Ant, Graddle para Groovy).
Usando un IDE
Ahora que lo que podría impulsar la productividad de su desarrollo. Hay algunas alternativas de código abierto (como Eclipse y NetBeans, prefiero la primera) e incluso comerciales (como IntelliJ) que son bastante populares y poderosas.
Pueden administrar la construcción del proyecto en segundo plano para que no tenga que lidiar con todas las cosas de la línea de comandos. Sin embargo, siempre es útil si sabes lo que realmente sucede en segundo plano para que pueda buscar errores ocasionales como un ClassNotFoundException
.
Una nota adicional
Para proyectos más grandes, siempre se recomienda utilizar un IDE y una herramienta de construcción. El primero aumenta su productividad, mientras que el segundo permite utilizar diferentes IDE con el proyecto (por ejemplo, Maven puede generar descriptores de proyecto Eclipse con un simple mvn eclipse:eclipse
mando). Además, tener un proyecto que se puede probar / construir con un comando de una sola línea es fácil de presentar a nuevos colegas y en un servidor de integración continua, por ejemplo. Pedazo de pastel 🙂
find . -name "*.java" -print | xargs javac
Un poco brutal, pero funciona como el infierno. (Úselo solo en programas pequeños, no es absolutamente eficiente)
Si su shell lo admite, ¿funcionaría algo como esto?
javac com/**/*.java
Si su caparazón no es compatible **
, entonces tal vez
javac com/*/*/*.java
funciona (para todos los paquetes con 3 componentes – adaptarse para más o menos).