## javac - El compilador de Java

### Síntaxis de utilización

>     javac [opciones] fichero.java ...

>     javac_g [ opciones] fichero.java ...

### Descripción

> El comando javac compila el código fuente Java y lo convierte en Bytecodes. Después se puede utilizar el intérprete Java - java - o el navegador en caso de los applets para interpretar esos Bytecodes Java.

> El código fuente de Java debe estar contenido en ficheros con extensión '.java'. Para cada clase definida en el fichero fuente pasado a javac, el compilador almacena los bytecodes resultantes en un fichero llamado nombredeclase.class. El compilador sitúa estos ficheros en el mismo directorio en el que estaba el fichero fuente (a menos que se especifique la opción -d).

> Cuando definas tus propias clases necesitarás especificar su localización. Utiliza CLASSPATH para hacer esto. CLASSPATH consiste en una lista de directorios separados por puntos y comas que especifican el path. Si el fichero fuente pasado a javac hace referencia a otra clase que no está definida en otros ficheros pasados a javac, el compilador busca las clases referenciadas utilizando CLASSPATH. Por ejemplo:

>     .;C:/users/java/clases

Observa que el sistema siempre añade la localización de las clases del sistema al final del CLASSPATH a menos que se utilice la opción -classpath para especificar un path.

javac_g es una versión no optimizada de javac especialmente preparada para utilizar con depuradores como jdb.

### Opciones

> -classpath path
>   Especifica el path que javac utilizará para buscar las clases. Sobreescribe el path por defecto generado por la variable de entorno CLASSPATH. Los directorios están separados por puntos y comas. Por ejemplo:

>       .;C:/users/java/clases;C:\tools\java\clases

> -d directorio
>   Especifica el directorio raiz para el árbol de clases. Hacer esto:

>       javac -d <mi_dir> miprograma.java

>   hace que los ficheros '.class' del fichero fuente 'miprograma.java' sean guardados en el directorio 'mi_dir'.

> -g
>   Habilita la generación de tablas de depurado. Esta tablas contienen información sobre los números de líneas y las variables locales - información utilizada por las herramientas de depurado de Java. Por defecto, sólo genera números de líneas a menos que se active la optimización (-O).

> -nowarn
>   Desactiva los avisos. Si se utiliza el compilador no imprime ningún aviso.

> -O
>   Optimiza el código compillado introduciendo en línea los métodos finales y privados. Observa que esto puede hacer que el tamaño de tus clases crezca demasiado.

> -verbose
>   Hace que el compilador y el enlazador impriman los mensajes sobre los ficheros fuentes que están siendo compilados y que ficheros .class están siendo cargados.

Ozito