我正在执行以下命令来创建图像。
jlink --module-path jars/:$JAVA_HOME/jmods --add-modules app.main,app.interfaces.impl,app.interfaces.otherimpl --output image
'app.main'模块包含主类。
“ app.interfaces.impl”和“ app.interfaces.otherimpl”是在“ app.interfaces”模块中实现接口的模块。
当我使用jlink命令创建映像时,它会在bin文件夹中创建java和keytool命令,但是不会复制任何模块。
$tree
.
├── image
│ ├── bin
│ │ ├── java
│ │ └── keytool
但是当我执行'java --list-modules'时,它列出了所有模块。
$./image/bin/java --list-modules
app.interfaces
app.interfaces.impl
app.interfaces.otherimpl
app.main
java.base@12.0.1
$
如何从app.main模块运行主类?模块到底复制到哪里了?
答案 0 :(得分:0)
如何从app.main模块运行主类?
除了执行主类,您还可以使用命令行:
/image/bin/java -m app.main/app.main.MainClass
或使用--launcher
选项在bin目录中创建启动脚本,例如
--launcher app=app.main/app.main.MainClass
在bin目录中创建“ app”。