使用命令行javac
和java
命令编译和运行模块。
项目目录:所有模块的顶层目录mymodapp
.
├── appmodules
│ ├── appstart
│ │ ├── appstart
│ │ │ └── mymodappdemo
│ │ │ └── MyModAppDemo.class
│ │ └── module-info.class
│ ├── userfuncimp
│ │ ├── module-info.class
│ │ └── userfuncimp
│ │ └── binaryfuncsimp
│ │ ├── AbsMinsProvider.class
│ │ ├── AbsMinus.class
│ │ ├── AbsPlus.class
│ │ └── AbsPlusProvider.class
│ └── userfuncs
│ ├── module-info.class
│ └── userfuncs
│ └── binaryfuncs
│ ├── BinFuncProvider.class
│ └── BinaryFunc.class
└── appsrc
├── appstart
│ ├── appstart
│ │ └── mymodappdemo
│ │ └── MyModAppDemo.java
│ └── module-info.java
├── userfuncimp
│ ├── module-info.java
│ └── userfuncimp
│ └── binaryfuncsimp
│ ├── AbsMinsProvider.java
│ ├── AbsMinus.java
│ ├── AbsPlus.java
│ └── AbsPlusProvider.java
└── userfuncs
├── module-info.java
└── userfuncs
└── binaryfuncs
├── BinFuncProvider.java
└── BinaryFunc.java
模块源代码保存在appsrc
目录下;编译的之后的class文件保存在appmodules
目录下;以下命令在mymodapp
目录下执行
命令参数说明:
- –module-path:指定查找应用程序模块的位置;
- -d:指定放置生成的类文件的位置;
编译userfuns模块:
javac -d appmodules/userfuncs appsrc/userfuncs/**/*.java
编译userfuncimp模块:
javac -d appmodules/userfuncimp --module-path appmodules appsrc/userfuncimp/**/*.java
编译模块代码:
javac -d appmodules/appstart --module-path appmodules appsrc/appstart/**/*.java
运行appstart模块的main方法:
java --module-path appmodules -m appstart/appstart.mymodappdemo.MyModAppDemo
class:class userfuncimp.binaryfuncsimp.AbsMinsProvider; name:AbsMins
class:class userfuncimp.binaryfuncsimp.AbsPlusProvider; name:AbsPlus
github仓库代码:https://github.com/itaiit/javanewfeature