Eclipse中缺少java.awt

ne5o7dgx  于 2023-03-28  发布在  Java
关注(0)|答案(2)|浏览(669)

(On Ubuntu Linux),正如您从屏幕截图中看到的,Eclipse列表中缺少java.awt

我尝试了不同版本的JDK,包括17。另请参阅我的配置对话框,我尝试添加awt

如何让Eclipse看到java.awt?(现在当我尝试使用java.awt时,它会产生错误。)

2skhul33

2skhul331#

(On Ubuntu Linux),正如您从屏幕截图中看到的,java.awt在Eclipse的列表中缺失:
你很困惑。你已经有了java.awt-没有什么你需要做的!!-但是继续读下去,我想我知道你在困惑什么。
你粘贴到问题中的列表是 a list of modules. java.awt不是一个模块名,从来都不是。你想的是java.awt.Button中的java.awt,它是 * 一个包名 *。不是一个模块名。
java.awt包位于java.desktop模块中,该模块 * 您已经拥有 *(它在您的粘贴列表中。无论如何,所有JDK都有此模块,除非是treeshaking,这是极不可能的。即使是无头JDK也有此包;如果你试图在一个headless环境中使用AWT/使用一个'headless' JDK安装,那么与java.awt中的大多数代码交互将导致一个HeadlessException
因此,没有什么你必须做的-你已经有了它
让我猜猜你对什么感到困惑:
默认情况下,eclipse * 忽略 * AWT。如中所示,自动完成对话框和“查找类型”对话框 * 不显示AWT类,即使它们可用 *。
试试看:输入class Test { java.awt.Button b = null; },并注意 * 这段代码编译良好,没有错误-不需要安装任何东西 *。
要解决这个问题,你可以打开eclipse的preferences窗口,在filterbox中输入'type filter'(你要找的是JavaAppearanceType filters),然后 uncheckjava.awt,你会在filterlist中找到它,并检查你是否有一个标准的eclipse安装。
Eclipse默认情况下禁用它是有充分理由的:

  • java.awt已经过时了;java有3个本地桌面GUI框架(AWT、Swing和JavaFX),AWT是迄今为止使用最少(也是最老)的一个。
  • 包中的类型名称与其他包中的常见名称冲突。例如,java.awt.List是一个东西。在Java生态系统中,字面上的意思是java.util.List而不是java.awt.List,在地球上任何地方的eclipse中,99.999%的情况下都有人输入List。然而,如果你试图修复List上的导入,eclipse被迫询问您是否需要java.awt.Listjava.util.List,这对每个人来说都很烦人,因此,eclipse默认情况下,对于这种类型的搜索来说,java.awt并不存在。

注:2023年在AWT中启动一个新的桌面客户端似乎..不太可能是你真正想在这里做的。进一步的猜测是你正在遵循一个20年前的教程。很可能你正在寻找的真正答案是“使用其他东西”。至少,摆动(javax.swing包,也在java.desktop模块中,也已经安装)。可能是JavaFX(需要单独的dep/install)。可能是:不要介意本地桌面,构建一个网络应用程序。

wn9m85ua

wn9m85ua2#

在“JRE系统库”面板中,单击“添加外部JAR”按钮。浏览到rt.jar文件的位置。该文件通常位于Java安装的lib目录中。例如,在Ubuntu上,它可能位于/usr/lib/jvm/java--openjdk-amd64/jre/lib/rt.jar。
选择rt.jar文件并单击“打开”。
单击“完成”关闭“JRE系统库”面板。
单击“确定”关闭“首选项”对话框。
完成这些步骤之后,java.awt包应该可以在EclipseIDE中使用了。

相关问题