- Modular Programming in Java 9
- Koushik Kothagal
- 313字
- 2021-07-02 18:38:21
Compiling your module
Compiling code in a Java 9 module requires the use of the javac command as always, but with a few different options this time. To compile modules in Java 9, you need to provide the javac command with the following information:
- The location of your modules. This is the directory that contains the module root folders for all the modules in your application. In our case, this is the src folder. In it, we just have one module root folder.
- The paths and names of the Java files that need to be compiled. In our case, it's just one file--Main.java.
- The destination location where the compiler needs to output the compiled .class files. This can be any location, but I recommend choosing a folder named out directly below the project root folder.
To compile the module you've written, go to the project root (in our example, it's ~/code/java9) and run the following command:

Here, you are specifying the module source path (1) using the --module-source-path command option, the output directory for compiled classes (2) using the -d command option, and the list of Java source files (3) by specifying them directly in the command (in this case, Main.java and module-info.java).
If the compiler is successful, there is no output to the console. The out directory should contain the compiled classes:

Note that there is a one-to-one mapping between the source and compiled classes. Even the module descriptor module-info.java has been compiled to a .class file--module-info.class. This is for a very important reason. The module configuration provides metadata information about the module not just to the compiler during compile time, but also to the JVM during runtime. Thanks to the module-info.class, the JVM also has all the information about every Java module, thus enabling the runtime to tap into many of the benefits of the module system during execution.
- Advanced Splunk
- Visual Basic程序開發(學習筆記)
- Debian 7:System Administration Best Practices
- Python 深度學習
- MATLAB定量決策五大類問題
- Visual Basic程序設計與應用實踐教程
- C程序設計實踐教程
- Learning Docker Networking
- Rust游戲開發實戰
- Django實戰:Python Web典型模塊與項目開發
- 汽車人機交互界面整合設計
- OpenCV 3計算機視覺:Python語言實現(原書第2版)
- PHP與MySQL權威指南
- MyBatis 3源碼深度解析
- 和孩子一起學編程:用Scratch玩Minecraft我的世界