Błąd „pakiet javax.inject nie istnieje” podczas kompilowania z javac w linii poleceń

Czynię pierwsze kroki w kierunku nauki JSF. Znalazłem tę interesującą książkę „Core JavaServer Faces Third Edition”.

Próbując skompilować pierwszy przykład, możesz pobrać kod źródłowy z:http://horstmann.com/corejsf/. Kiedy wpisuję następujące polecenie w linii poleceń

javac UserBean.java

Dostaję błędy:

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

Pobrałem Java EE, Ant i GlassFish.

Oto zdjęcie mojej linii poleceń:

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>

Sprawdzałem, jak skompilować aplikację Java EE na ostatni tydzień, ale bez niczego użytecznego.

Czy ktoś mógłby mi w tym pomóc, muszę to rozwiązać, abym mógł kontynuować moje zadanie uczenia się JSF.

S.P: Chcę nauczyć się kompilować aplikacje Java EE gołymi rękami, zanim przejdę do kompilowania projektów Java EE za pomocą NetBeans. Wolę najpierw nauczyć się pracować z GlassFish, a może później rozważę Tomcat.

Jeszcze jedno pytanie; Jaka jest różnica między używaniem Java EE i serwera GlassFish do wdrażania moich aplikacji?