2

我正在执行以下命令来创建图像。

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 模块运行主类?模块到底复制在哪里?

4

1 回答 1

0

如何从 app.main 模块运行主类?

除了执行主类之外,您还可以使用命令行:

/image/bin/java -m app.main/app.main.MainClass

或使用--launcher选项在 bin 目录中创建启动脚本,例如

--launcher app=app.main/app.main.MainClass

在 bin 目录中创建“app”。

于 2019-06-14T17:02:21.877 回答