当前位置: 首页 > 知识库问答 >
问题:

Java 11编译错误:包xxx存在于另一个模块中

叶鸿煊
2023-03-14

我的项目中有一个班级。这个类包含在javax包中。swing扩展了javax。摆动JOptionPane,因为我想使用JOptionPane的一些受保护的方法。

当编译器是JDK 8时,它可以正常工作。我将JDK版本更新为11,然后出现了一个编译错误:包“javax”。swing’存在于另一个模块中:java。桌面

我的IDE是Intellij idea。我打开了设置——构建、执行、部署——Java编译器,并在“重写编译器参数预模块”中添加了一项。这个模块是我的项目。编译选项是

--patch-module java.desktop=src -d mypatches/java.desktop/src/java.desktop/javax/swing/Top.java

但它不起作用。

我的项目树是'GreatProject/src/javax/swing/Top.java'。

“src-d”是什么意思?

正确的“补丁模块”是什么?

共有1个答案

齐意致
2023-03-14

从Java9版本开始,添加了对jigsaw项目的完全支持,以确保项目的模块化。如果包中存在相同的名称,则此系统可能会在编译过程中导致问题。

>

  • 请检查关于模块修补过程的主题,以使您的模块适应javax.swing包。

    此外,您可以尝试使用反射API从“JOptionPane”类获取元素。

  •  类似资料:
    • 问题内容: 我有一个包,其中导入了javax.servlet。和javax.servlet.http。,当我尝试在命令提示符下对其进行编译时,出现错误 软件包javax.servlet不存在 我使用JDK 1.7.0和Tomcat 6.0。 问题答案: 您需要将Tomcat 文件的路径添加到编译时类路径。 Java需要在类路径中查找导入的依赖项。否则,它将默认为上面示例中包含的当前文件夹。的是Wi

    • 我正在尝试向现有的企业项目添加maven支持。这是一个多模块项目,前两个模块的编译和打包没有问题,但我面临编译错误,我试图在多个模块中使用相同的依赖关系。我的结构是: 我支持在Eclipse上打开的项目,它没有显示任何错误。当我从父级运行时,它成功地安装了模块1和模块2,但在模块3上失败,表明,。包裹xxx。yyy和符号XXXYYY位于模块2和3的依赖项上列出的jar中。 由于两个模块都依赖于同一

    • 包javax.servlet不存在 我使用JDK1.7.0和Tomcat6.0。

    • 当我试图通过[mvn clean install-DskipTests]通过控制台构建项目时,我得到了一个错误。我在测试中使用testNG SoftAssert,在测试类中我刚刚添加了一个导入组织。测试NG。断言。但是看起来maven没有看到这个包。控制台出错: 包org.testng.asserts不存在 我的pom。xml看起来像

    • 我只在Spring Boot项目中使用IntelliJ IDE。请注意,我没有使用任何Kotlin项目。但是,今天,我在下面有一个错误。任何专业人士。请帮忙解决这个问题!谢谢,错误:Kotlin:模块是用不兼容的Kotlin版本编译的。其元数据的二进制版本为1.5.1,预期版本为1.1.13。

    • 问题内容: 我试图使用Dagger在正在构建的应用程序上进行依赖注入,当我拥有一个程序包的模块(取决于注入器(可能是另一个模块)提供的值)时,在构造适当的DAG时遇到了麻烦。 如果我有一个用于配置变量的简单模块(例如,我可能想换成测试环境) 而另一个模块依赖于它,例如 我尝试在构造函数中引导注入的行失败,并且它抱怨我没有在适当的模块中指定显式行。 通过反复试验,我发现如果在行中添加,这种情况就消失