热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在IntelliJIDEA2017.2.1中无法使用--patch-module编译Java9模块

如何解决《在IntelliJIDEA2017.2.1中无法使用--patch-module编译Java9模块》经验,求大佬解答?

我试图熟悉Java 9模块以及如何在IntelliJ中定义它们.除此之外,我想使用--patch-module编译器/ JVM标志解决拆分包问题,我不知道如何使它在IntelliJ中工作.

我正在使用IntelliJ IDEA 2017.2.1使用Java HotSpot(TM)64位服务器VM构建#IC 172.3544.35(内置9 + 180,混合模式).

这是我的源文件MyImmutableList.java:

package com.google.common.collect;

public class MyImmutableList extends RegularImmutableList {
  public MyImmutableList(Object[] array) {
    super(array);     
  }
}

它属于我的模块com.effjava.collectmodule-info.java:

module com.effjava.collect {
    // do not require module guava; instead patch this module with guava.19-0.jar via:
    // javac --patch-module com.effjava.collect=guava-19.0.jar module-info.java com/google/common/collect/MyImmutableList.java
    //    requires guava;        
    exports com.google.common.collect;
}

为了编译我的模块,我--patch-module使用Settings=> Build,Execution,Deplyoment=> Compiler=> 在IntelliJ中指定了标志,Shared build process VM options如此处所述.

编译失败,因为编译器无法RegularImmutableList从guava库中找到超类.

IntelliJ提供的建议是将requiresguava库的指令添加到模块描述符中,这当然不起作用,因为编译器然后正确地抱怨了拆分包问题:

错误:java:module guava从com.effjava.collect和guava中读取包com.google.common.collect

在进一步调查中,我注意到构建过程发出了与--patch-module标志相关的警告:

错误:异常构建过程终止:"C:\ Program Files\Java\jdk-9\bin\java"-Xmx700m -Djava.awt.headless = true

... 很多东西 ...

警告:未知模块:com.effjava.collect指定给--patch-module

... 更多东西 ...

顺便说一句,我不知道如何掌握编译器警告.我没有在IntelliJ的消息窗口中隐藏它们但我看不到它们.作为一种解决方法,我只是指定伪造的编译器标志,让构建过程崩溃,以便它在崩溃报告中发出警告.

无论如何,构建过程抱怨 - 在构建模块时 - 所讨论的模块不存在,因此无法通过修补--patch-module.这个抱怨没有意义,因为我通过在命令行级别手动输入javacjar命令来成功编译和构建我的模块:

cd %PROJECTDIR%\com.effjava.collect\src
javac --patch-module com.effjava.collect=../../guava/guava-19.0.jar -d ../../out/production/com.effjava.collect module-info.java com/google/common/collect/MyImmutableList.java
jar --create --file=../../out/artifacts/com_effjava_collect_jar/com.effjava.collect.jar -C ../../out/production/com.effjava.collect .

如何告诉IntelliJ的构建过程我想修补模块?


推荐阅读
author-avatar
道士也调情
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有