Java(Maven)控制台应用程序。如何将其与JRE捆绑在一起?

时间:2018-03-20 13:31:58

标签: java maven bundle

我在maven的帮助下为我的依赖管理开发了一个java控制台应用程序。 该应用程序是一个纯控制台应用程序,这意味着用户必须通过comandline调用它,并且必须为其提供参数。 我需要将finiheD jar(由maven-assembly-plugin生成的依赖项)与一个完整的JRE捆绑在一起,因为应用程序必须能够在没有安装java的机器上工作。

我尝试在完成的jar上使用java packager -deploy命令,但它确实不起作用: https://docs.oracle.com/javase/9/tools/javapackager.htm#JSWOR719

C:\jdk-9.0.4\bin>javapackager.exe -deploy -srcdir C:\folderwithjarinside -outdir C:\outdir -name Toolname -native -appclass [..].core.Main

之后我得到了一个jar包,完整的jre和一个exe来启动整个事情: enter image description here

当我现在启动exe时没有任何反应,当我从命令行启动它时,没有任何反应,我甚至不会得到控制台输出,应该发生。 当我启动jar allone时,我得到控制台输出,即使我不提供参数并且它崩溃的原因。

如何使用JRE打包我的java控制台应用程序,并且仍然可以在命令行应用程序提供参数并查看控制台输出时启动它?

提前致谢

1 个答案:

答案 0 :(得分:0)

存在用于将JRE与您的应用程序打包的多种工具:

这些方法都不是跨平台的:您需要在每个目标平台上至少安装一次JRE,然后从那里使用已安装的JRE文件夹。