[英]“package javax.inject does not exist” error while compiling with javac in commandline
我正在邁出學習JSF的第一步。 我發現這本有趣的書名為“Core JavaServer Faces Third Edition”。
嘗試編譯第一個示例,您可以從http://horstmann.com/corejsf/下載源代碼。 當我在命令行上鍵入以下內容時
javac UserBean.java
我收到錯誤:
package javax.inject does not exist
package javax.enterprise.context doe not exist
我已經下載了Java EE,Ant和GlassFish。
以下是我的命令行:
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>
谷歌搜索如何編譯上周的Java EE應用程序,但沒有任何有用的東西。
請有人幫我解決這個問題,我需要解決這個問題,以便我可以繼續學習JSF。
SP:在學習使用NetBeans編譯Java EE項目之前,我想學會簡單地編譯Java EE應用程序。 我更喜歡先學習使用GlassFish,然后我會考慮使用Tomcat。
還有一個問題; 使用Java EE和GlassFish服務器部署我的應用程序有什么區別?
您需要在編譯時類路徑中包含包含這些類的JAR文件。
在您使用GlassFish服務器的特定情況下,這是/glassfish/lib/javaee.jar
。 您可以將類路徑指定為javac
命令的-cp
(或-classpath
)參數。 它是一個半分號的磁盤文件系統路徑字符串,指向JAR文件和/或類文件夾,它們應包含在編譯時類路徑中。
javac -cp /path/to/glassfish/lib/javaee.jar UserBean.java
一旦遇到import
引用的未知類, javac
就會查看它,以便它可以驗證您是否以正確的方式使用它。
這在技術上與Java EE無關。 這只是基本的Java。 我建議在深入了解Java EE之前先學習一下。
如果您使用的是IDE,那么只需將目標服務器作為“Targeted Runtime”附加到項目中即可。 然后,IDE將自動對構建路徑(編譯時類路徑)執行所有操作。
在netbeans 7.3中,您可以右鍵單擊項目查看器中的libraries文件夾,選擇“添加庫”選項,然后從列表中選擇“Java EE 6 API庫”。
在NetBeans IDE 8.0中,它與上面針對7.3版所描述的略有不同
Libraries
您的項目 Import...
Java EE 6 API Library
或Java EE 7 API Library
。 Import Library
按鈕 Add Library
按鈕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.