无法解析导入 java.awt

2022-09-03 03:51:56

我已经在带有macOS 10.13.5的MacBookPro上安装了Eclipse [Version: Photon Release (4.8.0)]和JDK 10当我用我的代码写:import java.awt.*;

我收到错误:

无法解析导入 java.awt

是否包含在 JDK 10 中?如果是,在哪里,我怎样才能让 Eclipse 可见?如果没有,我该如何添加java.awt?java.awt


答案 1

是否包含在 JDK 10 中?java.awt

是的,这个包确实存在。Java10 API文档也证实了这一点。

如果是,在哪里,我怎样才能让 Eclipse 可见?

在模块化代码中,您需要做的就是通过在模块描述符 file() 中声明对 java.desktop 模块的依赖关系来解析 java.desktop 模块。即module-info.java

requires java.desktop;

答案 2

基本上,只需将此maven构建编译器插件部分添加到您的主项目Maven POM.xml
即可指定必须添加哪些JDK9 +模块以进行javac编译。

  <?xml version="1.0" encoding="UTF-8"?>
  <project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    ...
    
    <properties>
        <java.version>11</java.version>
        ...
    </properties>

    ...

    <build>
        <plugins>
             <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>

                    <!-- JDK9+ Add Module MAGIC happens below...          -->
                    <!-- Add implicit default JDK9+ java.se explicitly    -->
                    <!-- Add explicit java.desktop for import java.awt.*; -->
                    <compilerArgs>
                        <arg>--add-modules</arg>
                        <arg>java.se,java.desktop</arg>
                    </compilerArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>

  </project>

如下所述:

https://www.baeldung.com/java-9-modularity

有关其他常见的缺失 JDK10+ 模块,请参阅:

http://cr.openjdk.java.net/~iris/se/10/pfd/java-se-10-pfd-spec-01/api/overview-summary.html


推荐