2012-09-06 12 views
9

Sto facendo i miei primi passi verso l'apprendimento di JSF. Ho trovato questo libro interessante chiamato "Core JavaServer Faces Third Edition"."pacchetto javax.inject non esiste" errore durante la compilazione con javac in riga di comando

Cercando di compilare il primo esempio, è possibile scaricare il codice sorgente da: http://horstmann.com/corejsf/. Quando ho digitare quanto segue sulla riga di comando

javac UserBean.java 

ricevo errori:

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

Ho scaricato Java EE, Formica e GlassFish.

Ecco un gioco da ragazzi della mia linea di comando:

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> 

stato googling come compilare un'applicazione Java EE per l'ultima settimana, ma senza nulla di utile.

Qualcuno potrebbe aiutarmi con questo per favore, ho bisogno di risolvere questo quindi posso andare avanti nel mio compito di imparare JSF.

S.P: Desidero imparare a compilare le applicazioni Java EE a mani nude prima di passare alla compilazione dei miei progetti Java EE con NetBeans. Preferisco imparare a lavorare con GlassFish prima, forse in quest'ultimo caso prenderò in considerazione Tomcat.

Un'altra domanda; Qual è la differenza tra l'uso di Java EE e del server GlassFish per distribuire le mie applicazioni?

+0

Assicurarsi di utilizzare JSF 2.xe GlassFish 3.xo un altro server di applicazioni Web Java EE 6 e il progetto fa riferimento alle librerie GlassFish. –

risposta

10

È necessario includere il file JAR contenente tali classi nel percorso di classe tempo di compilazione.

Nel caso particolare con il server GlassFish, questo è il /glassfish/lib/javaee.jar. È possibile specificare il percorso di classe come -cp (o -classpath) argomento del comando javac. È una stringa semicoloneparata di percorsi del file system del disco che punta a file JAR e/o cartelle di classi che dovrebbero essere inclusi nel percorso di classe tempo di compilazione.

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

javac sarà quindi cercare in una volta che incontra una classe sconosciuta, che fa riferimento import, in modo che possa tra l'altro di verificare se è stato utilizzato nel modo giusto.

Questo non ha tecnicamente nulla a che fare con Java EE. Questo è solo Java di base. Suggerirei di apprenderlo prima di immergermi in Java EE.

Nel caso in cui si utilizzi un IDE, si tratta semplicemente di associare il server di destinazione come "Runtime mirato" al progetto. L'IDE eseguirà automaticamente tutte le magie sul percorso di compilazione (il percorso di classe del tempo di compilazione).

8

In netbeans 7.3 è possibile fare clic con il pulsante destro del mouse sulla cartella delle librerie nel visualizzatore del progetto, scegliere l'opzione "aggiungi libreria" e quindi selezionare "Java EE 6 API Library" dall'elenco.

+0

Cosa succede se non utilizzo Netbeans 7.3 ..? – NREZ

+0

@NREZ Sono sicuro che Eclipse ha una funzionalità simile. È solo un modo semplice per aggiungere JAR. – Thufir

2

In NetBeans IDE 8.0 è leggermente diverso da quello descritto sopra per la versione 7.3

  1. clic destro su Libraries in Java EE progetto
  2. Selezionare Import...
  3. Scegliere Java EE 6 API Library o Java EE 7 API Library a seconda della versione che si sta utilizzando.
  4. Fare clic sul pulsante Import Library
  5. Selezionare la libreria appena importata e premere il pulsante Add Library.
+1

Ha funzionato bene per NetBeans IDE 8.0 :) –