[Java 5.0] Des/Activar los warnings con javac
Artículo por Club Developers · 05 junio 2006
3061 vistas
El compilador Java del JDK 5.0 trae su lote de nuevos warnings. Un warning es un mensaje dado en la compilación para indicar un problema potencial, pero que no impide la compilación. No obstante, es aconsejable corregirlos ya que pueden dar problemas en ejecución.
No obstante, por defecto no se muestran todos estos warnings, sino sólo algunos. Por ejemplo:
Este mensaje indica el prolema potencial (en este caso el uso de un método deprecated) asà como qué hacer para obtener más detalles sobre el problema (recompilar con la opción -Xlint:deprecation).
JDK 5.0 ha introducido una nueva opción en el compilador javac para gestionar el mostrado o no de los warnings: la opción -Xlint. Si la usamos sola podemos desactivar todos los warnings del compilador:
La opción -Xlint acepta los prámetros siguientes:
[table]
[tr]
[tdc]Valor[/tdc]
[tdc]Descripción[/tdc]
[/tr]
[tr]
[tdc]all[/tdc]
[tdl]Activa todos los warnings[/tdl]
[/tr]
[tr]
[tdc]deprecation[/tdc]
[tdl]Activa los warnings referentes a los elementos deprecated. Tiene el mismo comportamiento que la opción -deprecation que ya existe en versiones anteriores.
(Ver [iurl=90&all=0&fs=1064#1070]deprecation : "uses or overrides a deprecated API"[/iurl])[/tdl]
[/tr]
[tr]
[tdc]unchecked[/tdc]
[tdl]Activa los warnings relativos al uso de tipos parametrizados.
(Ver [iurl=90&all=0&fs=1064#1069]unchecked : "uses unchecked or unsafe operations")[/iurl].[/tdl]
[/tr]
[tr]
[tdc]fallthrough[/tdc]
[tdl]Activa la verificación de los switch por el compilador.
(Ver [iurl=90&all=0&fs=1064#1068]fallthrough : "possible fall-through into case"[/iurl]).[/tdl]
[/tr]
[tr]
[tdc]path[/tdc]
[tdl]Activa la verificación de las rutas.
(Ver [iurl=90&all=0&fs=1064#1067]path : "bad path element"[/iurl]).[/tdl]
[/tr]
[tr]
[tdc]serial[/tdc]
[tdl]Activa todos los warnings relacionados con la Serialization (serialVersionUID).
(Ver [iurl=90&all=0&fs=1064#1066]serial : "serializable class Main has no definition of serialVersionUID"[/iurl]).[/tdl]
[/tr]
[tr]
[tdc]finally[/tdc]
[tdl]Activa todos los warnings relacionados con los bloques finally incorrectos.
(Ver [iurl=90&all=0&fs=1064#1065]finally : "finally clause cannot complete normally"[/iurl]).[/tdl]
[/tr]
[/table]
Podemos usar varios valores al mismo tiempo separados por comas. Anteponiendo a los valores el signo menos (-) desactivamos el warning asociado. Veamos algunos ejemplo:
Mostrar todos los warnings:
Mostrar warnings deprecated y unchecked
Mostrar todos los warnings menos unchecked
No obstante, por defecto no se muestran todos estos warnings, sino sólo algunos. Por ejemplo:
java
Note: Main.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details.
Este mensaje indica el prolema potencial (en este caso el uso de un método deprecated) asà como qué hacer para obtener más detalles sobre el problema (recompilar con la opción -Xlint:deprecation).
JDK 5.0 ha introducido una nueva opción en el compilador javac para gestionar el mostrado o no de los warnings: la opción -Xlint. Si la usamos sola podemos desactivar todos los warnings del compilador:
java
javac -Xlint MaClasse.java
La opción -Xlint acepta los prámetros siguientes:
[table]
[tr]
[tdc]Valor[/tdc]
[tdc]Descripción[/tdc]
[/tr]
[tr]
[tdc]all[/tdc]
[tdl]Activa todos los warnings[/tdl]
[/tr]
[tr]
[tdc]deprecation[/tdc]
[tdl]Activa los warnings referentes a los elementos deprecated. Tiene el mismo comportamiento que la opción -deprecation que ya existe en versiones anteriores.
(Ver [iurl=90&all=0&fs=1064#1070]deprecation : "uses or overrides a deprecated API"[/iurl])[/tdl]
[/tr]
[tr]
[tdc]unchecked[/tdc]
[tdl]Activa los warnings relativos al uso de tipos parametrizados.
(Ver [iurl=90&all=0&fs=1064#1069]unchecked : "uses unchecked or unsafe operations")[/iurl].[/tdl]
[/tr]
[tr]
[tdc]fallthrough[/tdc]
[tdl]Activa la verificación de los switch por el compilador.
(Ver [iurl=90&all=0&fs=1064#1068]fallthrough : "possible fall-through into case"[/iurl]).[/tdl]
[/tr]
[tr]
[tdc]path[/tdc]
[tdl]Activa la verificación de las rutas.
(Ver [iurl=90&all=0&fs=1064#1067]path : "bad path element"[/iurl]).[/tdl]
[/tr]
[tr]
[tdc]serial[/tdc]
[tdl]Activa todos los warnings relacionados con la Serialization (serialVersionUID).
(Ver [iurl=90&all=0&fs=1064#1066]serial : "serializable class Main has no definition of serialVersionUID"[/iurl]).[/tdl]
[/tr]
[tr]
[tdc]finally[/tdc]
[tdl]Activa todos los warnings relacionados con los bloques finally incorrectos.
(Ver [iurl=90&all=0&fs=1064#1065]finally : "finally clause cannot complete normally"[/iurl]).[/tdl]
[/tr]
[/table]
Podemos usar varios valores al mismo tiempo separados por comas. Anteponiendo a los valores el signo menos (-) desactivamos el warning asociado. Veamos algunos ejemplo:
Mostrar todos los warnings:
dos
javac -Xlint *.java javac -Xlint:all *.java
Mostrar warnings deprecated y unchecked
dos
javac -Xlint:deprecation,unchecked
Mostrar todos los warnings menos unchecked
dos
javac -Xlint:all,-unchecked