gpt4 book ai didi

java - 在命令行中使用 javac 编译时出现 "package javax.inject does not exist"错误

转载 作者:搜寻专家 更新时间:2023-10-30 21:45:23 26 4
gpt4 key购买 nike

我正在迈出学习 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。

标普:在转向使用 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

javac 会在遇到 import 引用的未知类时查看,以便它可以验证您是否以正确的方式使用它。

这在技术上与 Java EE 无关。这只是基本的 Java。我建议在深入学习 Java EE 之前先学习它。

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

关于java - 在命令行中使用 javac 编译时出现 "package javax.inject does not exist"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12310013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com