Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于模块系统的intellij问题的Java 9迁移_Java_Intellij Idea_Java 9 - Fatal编程技术网

基于模块系统的intellij问题的Java 9迁移

基于模块系统的intellij问题的Java 9迁移,java,intellij-idea,java-9,Java,Intellij Idea,Java 9,我正在尝试迁移我当前的项目,以便能够在Java9上编译和运行它。我首先尝试将一个基于java8的项目迁移到java9,而不做太多的工作,这意味着基本上不迁移到jigsaw 项目结构类似于 myjava-service [myjava-service-parent] parent-pom with the following modules - myjava-service - myjava-service-common - myjava-service-test 它使用mvn clea

我正在尝试迁移我当前的项目,以便能够在Java9上编译和运行它。我首先尝试将一个基于java8的项目迁移到java9,而不做太多的工作,这意味着基本上不迁移到jigsaw

项目结构类似于

myjava-service [myjava-service-parent] parent-pom with the following modules
 - myjava-service 
 - myjava-service-common
 - myjava-service-test
它使用mvn clean包进行完美编译,并在我执行fat.jar时运行

当我尝试使用intellij运行它时,噩梦就开始了。要在intellij上运行,我必须设置我想要执行的模块,即myjava服务,但显然intellij将其理解为java 9模块,以及许多拆分包问题、未找到的类和其他我正在努力解决的问题,那么,我的问题是,有没有一种方法可以在Java9环境下在intellij上运行服务,而不会以某种方式触发新的java模块系统

记录在案的问题,如


java.lang.module.ResolutionException:Modules javax.annotation.api和annotations将包javax.annotation导出到module javax.el

因此,显然有人介入了我所面临的相同问题,所以当您的服务由一个不属于源代码的类启动时会发生什么(在我的例子中,我的服务是由Vertx jar中的Starter类启动的)然后IDEA最终使用模块路径而不是类路径

对于下一版本,如果源代码中没有模块信息文件,IDEA将放弃使用模块路径。

另外,对于那些迫切需要在Java9中运行服务的人来说,有一项工作就是创建一个主类,并在启动服务的类中调用它,在我的例子中,它看起来像

public class Start {

    public static void main(String[] args) {
        Starter.main(args);
    }
}

这个问题要么太模糊,要么太宽泛。你能具体说明你的IDE报告的确切错误吗?还有,intellij是否在java 9上运行?嘿,是的,我可以,正如我所说,将包问题与许多库分开,这只是问题之一,但是的,我可以告诉你,我会用一些错误更新我的问题,但请不要期待修补程序:为了解决这个问题,我已经修补了许多库:(我刚刚读了我的问题,我明白了你的意思,看起来我想解决所有问题,但实际上我只想在intellij上运行我的项目,而不激活java模块系统,也许现在听起来更好了?不过,你必须在java 9上运行吗?是的,我们真的想知道迁移服务需要付出多少努力对于java 9,我们不想在java版本方面落后太多。我们希望能够优雅地做到这一点,首先在乞讨中以最小的努力安装并运行此服务,然后慢慢添加java 9功能等等。。。