0

我创建了一个具有以下结构的测试项目:

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 中发现了错误526831 ,但从那里看来它并不是真正的错误(?)。我在项目设置或配置方面做错了吗?

4

1 回答 1

1

module-info.java中必须指定所需的模块java.logging(而不是<attribute name="add-exports" value="java.logging/java.util.logging=ALL-UNNAMED"/>in .classpath):

module com.baseTest {
    requires java.logging;
}

Eclipse 为此提供了一个快速修复 ( Ctrl+ 1):将 'requires java.logging' 添加到 module-info.java

于 2018-01-30T11:30:54.503 回答