首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在命令行中使用javac进行编译时出现"package javax.inject in exist“错误

在命令行中使用javac进行编译时出现"package javax.inject in exist“错误
EN

Stack Overflow用户
提问于 2012-09-07 07:55:17
回答 3查看 34.1K关注 0票数 12

我正在向学习JSF迈出我的第一步。我发现了一本有趣的书,名为“核心JavaServer Faces第三版”。

尝试编译第一个示例时,可以从http://horstmann.com/corejsf/下载源代码。当我在命令行中键入以下内容时

代码语言:javascript
复制
javac UserBean.java

我得到错误:

代码语言:javascript
复制
package javax.inject does not exist
package javax.enterprise.context doe not exist

我已经下载了Java、Ant和GlassFish。

下面是我的命令行的一个快照:

代码语言:javascript
复制
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应用程序,但没有任何有用的东西。

有人能帮我解决这个问题吗?我需要解决这个问题,这样我才能继续学习JSF。

S.P:在使用NetBeans编译我的Java项目之前,我想学习如何徒手编译Java应用程序。我更喜欢先学习使用GlassFish,然后再考虑Tomcat.

还有一个问题:使用Java和GlassFish服务器部署我的应用程序有什么区别?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-08 05:01:46

您需要在编译时类路径中包含包含这些类的JAR文件。

在使用GlassFish服务器的特定情况下,这就是/glassfish/lib/javaee.jar。您可以将类路径指定为javac命令的-cp (或-classpath)参数。它是一个以分号分隔的磁盘文件系统路径字符串,指向应包含在编译时类路径中的JAR文件和/或类文件夹。

代码语言:javascript
复制
javac -cp /path/to/glassfish/lib/javaee.jar UserBean.java

一旦遇到import引用的未知类,javac就会查看它,这样它就可以验证您是否以正确的方式使用它。

从技术上讲,这与Java EE无关。这只是基本的Java。我建议在深入研究Java EE之前先学习这一点。

如果您使用的是IDE,那么只需将目标服务器作为“目标运行时”附加到项目即可。然后,IDE将自动对构建路径(编译时类路径)执行所有的魔术操作。

票数 10
EN

Stack Overflow用户

发布于 2013-09-06 20:13:51

在netbeans 7.3中,您可以右键单击项目查看器中的库文件夹,选择“添加库”选项,然后从列表中选择“Java EE 6 API库”。

票数 10
EN

Stack Overflow用户

发布于 2014-12-05 13:18:33

在NetBeans IDE8.0中,它与上面针对7.3版描述的版本略有不同

  1. 右键单击Java EE中的Libraries您的项目
  2. 根据您使用的版本选择Java EE 6 API LibraryJava EE 7 API Library
  3. 单击Import Library button
  4. Select您刚刚导入的库,然后按Add Library按钮。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12310013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档