1

javax.xml.bind我将所有其他主题都涂红了(可能适用于 jdk 10),但在jdk 11上运行仍然存在问题。

我的依赖:

    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.4.0-b180830.0359</version>                   <!--  2.2.12, 2.3.1  -->
    </dependency>
    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.4.0-b180830.0438</version>                   <!-- 2.3.1 -->
        <!--<scope>compile</scope>-->
        <!--<scope>runtime</scope>-->
    </dependency>
    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>javax.activation-api</artifactId>
        <version>1.2.0</version>
    </dependency>
    <dependency>
        <groupId>javax.annotation</groupId>
        <artifactId>javax.annotation-api</artifactId>
        <version>1.3.2</version>
    </dependency>

我的 IDE(最新的 intellij)仍然看不到导入:

import javax.xml.bind.annotation.XmlAccessType;

我的 module-info.java 也没有看到:

requires java.xml.bind;

当我使用 maven 时出现错误:

[错误] ...ExceptionType.java:[6,22] 包 javax.xml.bind.annotation 不可见(包 javax.xml.bind.annotation 在未命名的模块中声明,但模块 javax.xml.bind.注释不读)

有人在 jdk 11 上运行它吗?

编辑:1)带有java模块系统的应用程序版本:我有类似的问题: https : //youtrack.jetbrains.com/issue/IDEA-197956 但我的错误信息有点不同

2)没有java模块系统的应用版本:Maven编译正确。问题是 intellij 看不到我的导入:

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

并说:无法解析符号。同样在文件 > 项目结构 > 模块 > 依赖项 intellij 没有添加 javax.xml.bind 和 org.glassfish.jaxb 为什么?我在pom中添加了这个:

    <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.4.0-b180830.0359</version>                   <!-- 2.2.8, 2.4.0-b180830.0359  -->
    </dependency>
    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>2.4.0-b180830.0438</version>                   <!-- 2.3.0, 2.4.0-b180830.0438 -->
    </dependency>

JDK:openjdk11 Intellij 版本:IntelliJ IDEA 2018.2.4(终极版),Build #IU-182.4505.22,构建于 2018 年 9 月 18 日,JRE:1.8.0_152-release-1248-b8 amd64 JVM:OpenJDK 64-Bit Server JetBrains sro Maven 的 VM:3.5.4

这似乎是一个智能错误。

4

2 回答 2

0

切换回 JDK 1.8,它为我解决了这个问题。如何在 ubuntu 中切换:https ://askubuntu.com/questions/740757/switch-between-multiple-java-versions

于 2021-08-30T00:09:09.810 回答
0

我们设法找到了问题的原因。在 ide intellij 我有一个模块 maven 项目,我使用 JLupin 平台开发工具,所以在 *.iml 文件中我没有行:

'<'module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule = "true" type = "JAVA_MODULE" version = "4"> 但我有例如:

'<'module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule = "true" type = "JLP_NATIVE_MICROSERVICE_IMPLEMENTATION_MODULE_TYPE" version = "4">

开发的时候改了modules的名字,然后idea问是否要移除modules(因为ide不识别:

类型 = “JLP_NATIVE_MICROSERVICE_IMPLEMENTATION_MODULE_TYPE”)。虽然选择的选项不是,然后ide自动执行:

  • 选择 Maven 模块作为忽略
  • 在 iml 文件中替换:'<'module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule = "true" type = "JLP_NATIVE_MICROSERVICE_IMPLEMENTATION_MODULE_TYPE" version = "4"> 到:'<'module type = "JLP_NATIVE_MICROSERVICE_IMPLEMENTATION_MODULE_TYPE"版本 = "4">

由于上述原因,该项目没有正确读取 maven 工件。统一名称并将项目标记为未忽略后,它可以正常工作。该问题与java包无关

编辑:如上解决

于 2018-11-15T08:28:36.327 回答