我几次遇到这个问题。如果我将Java应用程序打包在一个接受用户参数的可执行jar文件中,则用户必须通过以下命令从命令提示符处调用程序(jar文件):
java -jar "jar-file-name.jar"
但是我希望每当用户双击可执行的jar文件(需要用户提供参数)时,就会出现一个窗口(命令提示符窗口),如果我们从命令提示符中调用jar文件,则会出现该窗口。
我知道一种解决方案是使用批处理文件.bat
运行jar文件。还有其他解决方案吗?
解释原因:
有2个Java JVM exe启动器:
默认情况下,JAR文件扩展名与javaw.exe相关联,这就是为什么双击它们时没有控制台的原因。
其他人给出的答案,并添加我自己的答案:
重写您的应用程序,使其使用Java GUI项代替System.in/System.out进行输入和输出。对于您的要求,这可能过于复杂。
您提到创建一个批处理文件,以便运行基于控制台的Java JVM(java.exe),也可以创建一个Windows快捷方式,指定命令行: java -jar jar-file-name.jar
您可以更改.jar的Windows文件关联(但通常这是一个坏主意-新安装的Java可能会重置此文件,这意味着从jar运行的所有Java应用程序都将具有一个控制台)
您可以使用Java启动器(例如WinRun4J),该启动器允许您简单地删除带有图标和配置文件的可双击EXE文件,该文件指定应如何运行您的应用程序(使用/不使用控制台,以及任何其他JVM和命令行参数)
就我个人而言,我在项目中使用了最后一个选项-我将jar文件设置为不可执行,并且用户必须双击EXE。它也允许我为我的项目指定一个漂亮的图标,并通过具有不同的exe / config文件在启动时提供多个选项(调试/非调试模式)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句