Intellij Idea 在将jar文件导入到新项目中时,我得到以下错误:java.lang.module.ResolutionException

4nkexdtk  于 8个月前  发布在  Java
关注(0)|答案(2)|浏览(163)

我正在使用IntelliJ,maven和javafx。我已经编写了一个sqlite Package 器,其中还包含一些javafx控件。这是sqlite项目,我已经导出到jar文件中。该包包含一个main函数,所以我可以测试这个jar文件,它工作正常。现在我想使用这个 Package 器构建一个新的项目。我选择了快速和肮脏的解决方案,为了将jar文件复制到我的新Project文件夹中,我在pom文件中添加了一个依赖项,然后将该模块的一个类导入HelloController(由IntelliJ自动构建的)。IntelliJ帮助我在module-info中添加了一个required-line。现在我一直得到以下错误:java.lang.module.ResolutionException:模块xx.xxxx.sqlite包含javafx.concurrent包,模块javafx.graphics将javafx.concurrent包导出到xx.xxxx.sqlite
当阅读其他讨论时,我了解到这应该是一个split.package错误,但我真的不明白,该怎么办。我既不能从sqlite项目中删除依赖项,也不能从我的新项目中删除依赖项,那么解决方案是什么?

nc1teljy

nc1teljy1#

我真的看不出,什么代码提供.我只是重现了问题,基本上没有自己的任何代码:我创建了一个javafx应用程序:在IntelliJ中我点击按钮新建项目,选择JavaFX,给它一个名称,选择语言java,构建系统maven,给它我自己的组id和左工件作为项目名称.在项目中我创建了两个类:一个名为Database的类,它是完全无效的,还有一个名为Launch的类,它的main方法引用了HelloApplication的main方法(没有这个方法,jar就找不到main)。然后我在文件菜单中点击项目结构,转到工件,从具有依赖关系的模块中添加jar。最后我点击构建工件。
之后,我以完全相同的方式创建了另一个项目。我将前一个项目的jar文件复制到新项目主目录下的lib文件夹中。然后我将以下依赖项添加到pom文件中:

<dependency>
        <groupId>de.stefanpetersen</groupId>
        <artifactId>sqliteTest</artifactId>
        <version>1.0-SNAPSHOT</version>
        <scope>system</scope>
        <systemPath>${basedir}/lib/sqliteTest.jar</systemPath>
    </dependency>

字符串
在我导入的HelloController中,

import de.stefanpetersen.sqlitetest.Database;


并添加
System. out. println();
在onHelloButtonClick方法中。
IntelliJ告诉我添加

requires de.stefanpetersen.sqlitetest;


在模块信息文件中。
当我尝试运行Launch时,我得到以下错误:

java.lang.module.ResolutionException: Module de.stefanpetersen.sqlitetest contains package javafx.scene.text, module javafx.graphics exports package javafx.scene.text to de.stefanpetersen.sqlitetest

p3rjfoxz

p3rjfoxz2#

问题解决了。我的错误是尝试快速而肮脏的解决方案将jar文件复制到我的新项目中。正确的方法是使用maven clean,install将jar文件写入我的仓库中。之后,我删除了POM文件中的两行'scope'和'systemPath',一切正常。

相关问题