- 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.
- Java 開發從入門到精通(第2版)
- Visual C++串口通信開發入門與編程實踐
- CMDB分步構建指南
- Rust編程從入門到實戰
- 編寫整潔的Python代碼(第2版)
- Cassandra Design Patterns(Second Edition)
- Julia機器學習核心編程:人人可用的高性能科學計算
- 琢石成器:Windows環境下32位匯編語言程序設計
- Spring核心技術和案例實戰
- Learning R for Geospatial Analysis
- Natural Language Processing with Java and LingPipe Cookbook
- ExtJS Web應用程序開發指南第2版
- Getting Started with Python
- SEO教程:搜索引擎優化入門與進階(第3版)
- Learning Image Processing with OpenCV