解决IDEA JDK9没有module-info.java的问题
时间:2022-02-15 11:07:56|栏目:JAVA代码|点击: 次
IDEA JDK9没有module-info.java问题
1. 创建一个maven工程
2. 配置一下项目的编译环境
注意:必须声明为jdk9及其以后的版本,不然new中是没有module-info.java这个选项
下面是使用jdk8的时候,没有module-info.java这个选项

使用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>

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;
}


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




