Har*_*ara 6 java jlink java-9 java-module
我创建3个模块的一个示例应用程序user,dept和account.在我的用户模块中,我有一个主类,并使用以下命令编译我的模块:
javac -d target --module-source-path src $(find -name "*.java")
Run Code Online (Sandbox Code Playgroud)
编译后,执行以下命令运行:
java -p target -m com.user/com.user.info.Launcher
Run Code Online (Sandbox Code Playgroud)
运行java模块后的输出成功.但是当尝试使用jlink成功创建的映像创建运行时映像但模块可执行脚本不存在时.为了创建图像,我使用以下命令:
jlink --module-path $JAVA_HOME/jmods:target --add-modules com.user --output my-app
Run Code Online (Sandbox Code Playgroud)
在,运行时映像,我有bin目录,但这个目录只包含java和keynote脚本.我期待用户主类脚本,以执行我的应用程序.
我的Java版本如下:
java version "9-ea"
Java(TM) SE Runtime Environment (build 9-ea+165)
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+165, mixed mode)
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
Jor*_*nee 11
jlink 创建一个运行时VM映像,其中只包含所需的模块.
由于您指定--add-modules com.user的图像将包含com.user模块,以及它(直接或间接)所依赖的所有模块.
您可以使用生成的图像java的bin文件夹中的二进制文件运行应用程序,并使用以下命令:
java com.user.info.Launcher
Run Code Online (Sandbox Code Playgroud)
您还可以jlink使用该--launcher <command>=<module>/<main>选项生成启动器脚本.在你的情况下你可以做类似的事情:
jlink --module-path $JAVA_HOME/jmods:target --add-modules com.user --output my-app --launcher launch=com.user/com.user.info.Launcher
Run Code Online (Sandbox Code Playgroud)
之后,您只需launch从bin目录中使用即可运行该应用程序.
| 归档时间: |
|
| 查看次数: |
1456 次 |
| 最近记录: |