2010-03-01 11 views

Respuesta

24

Bueno, esto parece bastante obvio, por lo que puede estar pasando algo

javac *.java 

(Con referencias de biblioteca apropiada etc.)

O quizás:

javac -d bin *.java 

a crear el javac estructura de directorio correcta para la salida.

¿Estabas buscando algo más sofisticado? De ser así, ¿podría darnos más detalles (y también en qué plataforma se encuentra)?

+0

gracias, funciona! – alex

+0

¿qué pasa con todos los archivos java en todos los directorios sub y decending? – Tom

+0

@Tom: encuentra eso dependerá del sistema operativo. Es completamente fácil en Unix, usando find. Más difícil en Windows. –

3

He aquí un fragmento de código que utilizo para construir un proyecto completo, donde, como de costumbre, los archivos de origen están en una jerarquía anidada y hay muchos archivos .jar que deben entrar en la ruta de clase (requiere utilidades de UNIX):

CLASSPATH= 
for x in $(find | grep jar$); do CLASSPATH="$CLASSPATH:$x"; done 
SRC=$(find | grep java$) 
javac -cp "$CLASSPATH" $SRC 
9

embargo, otra forma el uso de "encontrar" en UNIX se describe aquí:

http://stas-blogspot.blogspot.com/2010/01/compile-recursively-with-javac.html

los siguientes dos comandos compilar todos los archivos .java contenidos en el directorio ./src y sus sub directorios:

find ./src -name *.java > sources_list.txt 
javac -classpath "${CLASSPATH}" @sources_list.txt 

En primer lugar, find genera sources_list.txt, un archivo que contiene las rutas de acceso a los archivos fuente de Java. A continuación, javac compila todas estas fuentes con la sintaxis @sources_list.txt.

+0

Considera mejorar tu publicación ya que tu respuesta es esencialmente un enlace. Ver: [¿Las respuestas que solo contienen enlaces en otros sitios son realmente "buenas respuestas"?] (Http://meta.stackexchange.com/q/8231/156620) y [¿Por qué los enlaces son malos?] (Http: //meta.stackexchange) .com/q/7515/156620) –

+2

Buena solución. Sin embargo, omite el archivo temporal usando/dev/stdin. es decir. 'find ./src -name * .java | javac-classpath "$ {CLASSPATH}" @/dev/stdin' – Dunes

Cuestiones relacionadas