2012-09-06 60 views
9

Estoy dando los primeros pasos para aprender JSF. Encontré este interesante libro llamado "Core JavaServer Faces Third Edition".error "paquete javax.inject no existe" al compilar con javac en la línea de comandos

Al intentar compilar el primer ejemplo, puede descargar el código fuente de: http://horstmann.com/corejsf/. Cuando escribo lo siguiente en la línea de comandos

javac UserBean.java 

recibo errores:

package javax.inject does not exist 
package javax.enterprise.context doe not exist 

He descargado Java EE, Ant y GlassFish.

Aquí es un broche de presión de mi línea de comandos:

C:\JSF-Tutorial\corejsf3-examples\javaee\ch01\login\src\java\com\corejsf>javac UserBean.java 
UserBean.java:4: error: package javax.inject does not exist 
import javax.inject.Named; 
       ^
UserBean.java:6: error: package javax.enterprise.context does not exist 
import javax.enterprise.context.SessionScoped; 
          ^
UserBean.java:9: error: cannot find symbol 
@Named("user") // or @ManagedBean(name="user") 
^ 
    symbol: class Named 
UserBean.java:10: error: cannot find symbol 
@SessionScoped 
^ 
    symbol: class SessionScoped 
4 errors 

C:\JSF-Tutorial\corejsf3-examples\javaee\ch01\login\src\java\com\corejsf> 

Been buscar en Google la forma de compilar una aplicación Java EE para la última semana, pero sin nada útil.

Me ayudaría alguien con esto, por favor, necesito resolver esto para poder avanzar en mi tarea para aprender JSF.

S.P: Quiero aprender a compilar las aplicaciones Java EE a simple vista antes de pasar a compilar mis proyectos Java EE con NetBeans. Prefiero aprender a trabajar con GlassFish primero y tal vez este último lo considero Tomcat.

Una pregunta más; ¿Cuál es la diferencia entre usar Java EE y el servidor GlassFish para implementar mis aplicaciones?

+0

Asegúrese de estar utilizando JSF 2.x y GlassFish 3.x u otro servidor de aplicaciones web Java EE 6 y su proyecto hace referencia a sus bibliotecas GlassFish. –

Respuesta

10

Debe incluir el archivo JAR que contiene esas clases en el classpath del tiempo de compilación.

En su caso particular con el servidor GlassFish, ese es el /glassfish/lib/javaee.jar. Puede especificar el classpath como argumento -cp (o -classpath) del comando javac. Se trata de una cadena de rutas de sistema de archivos de disco separadas por punto y coma que apuntan a archivos JAR y/o carpetas de clase que deben incluirse en el classpath del tiempo de compilación.

javac -cp /path/to/glassfish/lib/javaee.jar UserBean.java 

javac busca entonces allí una vez que se encuentra con una clase desconocida que se hace referencia por import, de modo que ésta pueda verificar entre otros si se utiliza de la manera correcta.

Esto no tiene nada que ver técnicamente con Java EE. Esto es solo Java básico. Sugiero aprender eso primero antes de sumergirme en Java EE.

En caso de que esté utilizando un IDE, solo se trata de adjuntar el servidor de destino como "Tiempo de ejecución dirigido" al proyecto. El IDE automáticamente hará toda la magia en cuanto a la ruta de compilación (la ruta de clases del tiempo de compilación).

8

En netbeans 7.3 puede hacer clic derecho en la carpeta de bibliotecas en el visor de proyectos, seleccionar la opción 'agregar biblioteca' y luego seleccionar 'Java EE 6 API Library' de la lista.

+0

¿Qué pasa si no uso Netbeans 7.3 ..? – NREZ

+0

@NREZ Estoy seguro de que Eclipse tiene una funcionalidad similar. Es solo una manera fácil de agregar JAR. – Thufir

2

En NetBeans IDE 8.0 es ligeramente diferente a la descrita anteriormente para la versión 7.3

  1. Haga clic derecho sobre Libraries en Java EE su proyecto
  2. Seleccionar Import...
  3. Elija Java EE 6 API Library o Java EE 7 API Library dependiendo de la versión que está utilizando.
  4. Haga clic en el botón Import Library
  5. Seleccione la biblioteca que acaba de importar y presione el botón Add Library.
+1

Funcionó bien para NetBeans IDE 8.0 :) –

Cuestiones relacionadas