学习java模块化的第一个程序,hello world!
用idea建个java程序

选择jdk版本,模块化是jdk9以后加的,所以要选jdk9以上的版本;

不选,直接next

给项目一个名字,然后点击finish
新建的项目只有src一个源码目录,我们可以按maven的目录结构加上src/main/java,然后知道java这一层目录是源码根目录
步骤是右上角的方块(或ctrl+alt+shift+s) -> Modules -> Sources

在java目录下新建一个名为"org.codefx.demo.jpms"的包名,注意这里只有一个包名,不是四个包,默认情况下带"."的包命名idea会拆分几个包名,所以可以找到项目的文件夹,在文件夹里用新建文件夹的方式创建; 然后在这个目录下新建java类文件,HelloModularWorld并添加main方法,打印hello world;

在src/main/java目录下 创建module-info.java文件;

完整的项目结构如下

可能遇到的问题:
Error occurred during initialization of boot layer
java.lang.module.FindException: Module xxx.xxx.xx
这个问题是由于编译后没有module-info.class文件导致;可以尝试重新构建,或者另外新建一个项目写同样的module-info.java,编译好后拷贝一个到out/production/{项目名}/ 目录下就可以解决;
也可能会提示无法编译错误,这个时候需要确认后idea使用类编译项目的jdk版本
File-> Setting -> Build,Execution.... ->Compiler ->Java Compiler 在这里确认项目在编译时使用的jdk版本;
参考 https://blog.codefx.org/java/java-module-system-tutorial/
网友评论