我创建了一个具有以下结构的测试项目:
baseTest
|- src/main/java
| |- com.base
| | |- MainDependency.java
| |- module-info.java
|- src/test/java
|- test.com.base
|- SomeTest.java
module-info.java
只是一个空模块声明:
module com.baseTest {
}
MainDependency.java
相同:
package com.base;
public class MainDependency {
}
SomeTest
是一个依赖main
代码和JDK代码的类:
import java.util.logging.Logger;
import com.base.MainDependency;
public class SomeTest {
String s;
MainDependency md;
Logger j;
}
.classpath
是
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" path="src/test/java"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
<attribute name="add-exports" value="java.logging/java.util.logging=ALL-UNNAMED"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
使用上面的配置,我收到The import java.util.logging cannot be resolved
错误。删除<classpathentry kind="src" path="src/main/java"/>
会删除错误(可能是因为项目不再被视为模块化)。
我在Eclipse中找到了bug 526831,但从那里看来它并不是一个真正的错误(?)。我是否在项目设置或配置方面做错了什么?
答案 0 :(得分:1)
在 module-info.java 中,必须指定所需的模块java.logging
(而不是<attribute name="add-exports" value="java.logging/java.util.logging=ALL-UNNAMED"/>
中的.classpath
):
module com.baseTest {
requires java.logging;
}
Eclipse提供了一个快速修复( Ctrl + 1 ):添加&#39;需要java.logging&#39;到module-info.java 。