22

I have installed the Eclipse [Version: Photon Release (4.8.0)] and JDK 10 on a MacBookPro with macOS 10.13.5 When I write in my code: import java.awt.*;

I get the error:

The import java.awt cannot be resolved

Is the java.awt included in JDK 10 ? If yes where is and how can I make visible to Eclipse? If no how can I add java.awt?

8
  • 4
    Have you added that your project requires the module for awt? Commented Jul 24, 2018 at 16:08
  • 5
    From Java 9 onwards, Java is modularized. awt is 99% useless in Java apps and is therefore in a separate module (java.desktop) that is not loaded by default. You must explicitly tell Java to include this module. Commented Jul 24, 2018 at 16:11
  • I think the java.awt is included in JDK10, so I add only the line: import java.awt.* in my code. How can I tell to JDK to include java.awt ? Commented Jul 24, 2018 at 16:12
  • 1
    @Livio it is included in JDK10 but is not loaded when starting the JVM or seen by the compiler except if you explicitly ask for it. That's why this package is not found. Commented Jul 24, 2018 at 16:16
  • 2
    @Livio do you use modules? If yes you must declare requires java.desktop; inside your modules.java Commented Jul 24, 2018 at 16:39

2 Answers 2

58

Is the java.awt included in JDK 10?

Ye, the package does exist. The Java10 API docs do confirm the same as well.

If yes where is and how can I make visible to Eclipse?

In a modular code, all you need to do, is to resolve the java.desktop module by declaring a dependency on it in your module-descriptor file(module-info.java). i.e.

requires java.desktop; 
Sign up to request clarification or add additional context in comments.

2 Comments

I wish Eclipse's "Quick fix" would help out here... Thanks!
Hi, @Naman, Could you please share in detail where to put it?
4

Basically, just add this maven build compiler plugin portion to your main project Maven POM.xml
to specify which JDK9+ modules MUST BE added for javac compilation purposes.

 <?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> 

as explained here:

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

For other common missing JDK10+ modules, please refer to:

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.