如何解决从批处理文件运行可执行jar,但要打开控制台,以便用户可以看到输出不使用“ java -jar”
我已经创建了一个可执行的jar文件,双击它可以正常工作。但是有必要在执行结束时显示输出。我使用带有start xxx.jar
命令的批处理文件,它执行jar,但没有控制台和输出。然后,我用java -jar XXX.jar
来完成这项工作,但这里的问题是用户可能未安装jre。
有什么建议吗?
解决方法
start
将要求Windows使用注册表中配置的默认启动器启动文件。
这自然意味着什么都不会发生/除非您遇到一个奇怪的情况,即最终用户实际上已经安装了一个JVM,这是您不应该依赖的,并且您绝对不知道哪个JVM,否则将不会发生错误。也就是说,或者是哪个版本,或者是否已正确维护。它还将使用javaw.exe
,这是不显示控制台的控制台,您绝对不能做任何更改。
我认为您误会了-您想要一种在以下情况下可以解决问题的解决方案
- 用户自己安装了JDK或(过时的)JRE,并以双击jar文件实际上有效的方式安装了它,但是...
- 没有更新PATH变量,或者没有确保命令行上的
java
有效
我认为这根本不涉及很多安装。绝大多数部署将是“用户未安装任何Java”,在这种情况下,start
和java -jar
都不是解决方案,或者他们将Java安装在路径上,在这种情况下,批处理文件中的java -jar
可以正常工作。
好的,您如何部署Java应用程序
在现代?使用jlink创建一个压缩可执行文件,然后编写自己的安装程序,该程序将安装您信任的JVM(制作的一个jlink较小,因为不需要该应用程序的所有位都不需要),从而使用户能够运行您的应用程序,而无需“查找并安装Java”。不幸的是,这比以前要困难得多,并且要求您使用模块系统。
听起来像是太多的工作,旧方法有什么问题?
JRE(可以运行Java应用程序,但不包含任何开发工具的Java虚拟机)的概念是死的。没有更多的JRE。现在已经有7年历史的java8才是最后一次出现,而oracle发布的JRE几乎已经过时了:他们已经停止支持它了,或者马上就会实现。这意味着您要让用户安装不再接收安全更新的软件。这就是为什么这样做很不好。抱歉成为坏消息的承担者。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。