Eclipse 看不到 javax 包

Eclipse not able to see javax package

我目前正在尝试 fiddle 使用图像,特别是将图像从 JPEG、WEBP 和 BMP 格式转换为 PNG 格式,我的方法使用 javax.imageio.ImageIO class。当我尝试导入它时,Eclipse 大喊该类型不可访问的包。我觉得这很奇怪,于是我自己研究了 Whosebug,找到了多个答案,说我应该删除并重新添加 JRE。不出所料,这没有用,但是在查看我的构建路径时,我注意到 JRE 缺少整个 javax 包。这可能是有原因的吗?有修复吗?

确切的错误是 The type javax.imageio.ImageIO is not accessible,建议的编辑询问我是否要在 javax.imageio.

包中制作 class ImageIO

我正在使用最新版本的 Eclipse。我的 JDK 是 java-16-openjdk-amd64。我是 运行 Ubuntu 20.04。我从头开始构建这个应用程序,所以我没有使用 Maven(除非 Eclipse 默认使用 Maven)。

我尝试在我的命令行中编译一个基本的 class 并且出于某种原因它可以工作,尽管它不能在 Eclipse 中工作。

如果没有必要,我宁愿不将我的 JDK 恢复到旧版本。

您不要在 static class 上调用“new” 如果它确实具有可从其静态方法之一获得的此类类型,则要使其成为非静态实例,您可以将其强制转换为该类型。 但是,随着 javax.imageio.ImageIO you make other classes from its methods.

import java.awt.image.BufferedImage;
import java.io.*;
try{  // wrap in FileNotFoundException  IOException

File input = new File("/somewhere/over/the/rainbow/cementplant.jpg");
//static classes are called directly with a method
BufferedImage bfi = (BufferedImage)javax.imageio.ImageIO.read(input);

原来我是在当白痴。事实证明,我实际上是在没有意识到的情况下用模块制作的。我所要做的就是摆脱模块文件。