java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > IDEA JDK9没有module-info.java

解决IDEA JDK9没有module-info.java的问题

投稿:jingxian

这篇文章主要介绍了解决IDEA JDK9没有module-info.java的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

IDEA JDK9没有module-info.java问题

1. 创建一个maven工程

2. 配置一下项目的编译环境

注意:必须声明为jdk9及其以后的版本,不然new中是没有module-info.java这个选项 

下面是使用jdk8的时候,没有module-info.java这个选项

使用的JDK8

使用jdk10的时候,就有module-info.java这个选项

<build>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.7.0</version>
              <configuration>
                  <source>10</source>
                  <target>10</target>
              </configuration>
          </plugin>
	</plugins>
</build>

使用的JDK10

3. 一些注意事项

新建 module-info.java 文件必须选择 java这个文件夹,也就是存放java代码的源文件夹,选择其他文件夹右键是没有的

自己不能手动通过 new JavaClass 创建 module-info.java 文件,自己是没法创建的,因为Java变量定义规范是:字母、数字、下划线,$符号,下面是创建失败的截图 

这里写图片描述

这里写图片描述

虽然IDEA不让创建,但是我们可以自己在外面创建好一个module-info.java 文件,再复制到 java 文件夹下(不建议)

module-info.java文件

提供模块服务接口:

module module.first {
    exports first.p1;
//    provides first.p1.Shoe 
//        with first.p2.DoubleStar,first.p2.Warrior;    
    provides first.p1.Shoe 
    with first.p1.ShoeFactory;//必须实现public static provider方法
}

使用模块服务接口:

module module.second {    
    requires module.first;    
    uses first.p1.Shoe;
}

下面演示访问权限

open module module.first {
//module module.first {
    exports first.p1;    
    //opens first.p1;
}
module module.second {
    exports second.p1;
    requires transitive module.first; 
}
module module.third {
    requires module.second;
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文