我正在尝试使我的命令行实用程序之一更加用户友好。我的大多数同事不介意将该实用程序用作 CLI,但导航到它(对他们而言)有点痛苦。我宁愿不要去每台计算机并在他们的 CLI 中设置一个快捷方式,所以:
有没有办法让 .jar 文件在命令提示符中启动命令行实用程序(最好是 PowerShell?)我尝试搜索 Google 和 Stack Overflow,但很难取得进展......任何方向都将不胜感激。
我以某种方式想象这个使用Desktop
,但不确定它是如何工作的。
我正在尝试使我的命令行实用程序之一更加用户友好。我的大多数同事不介意将该实用程序用作 CLI,但导航到它(对他们而言)有点痛苦。我宁愿不要去每台计算机并在他们的 CLI 中设置一个快捷方式,所以:
有没有办法让 .jar 文件在命令提示符中启动命令行实用程序(最好是 PowerShell?)我尝试搜索 Google 和 Stack Overflow,但很难取得进展......任何方向都将不胜感激。
我以某种方式想象这个使用Desktop
,但不确定它是如何工作的。
也许您需要制作一个基于摇摆的控制台来重定向输出和输入。这是我在简单的网络搜索中找到的链接。(我以前从未使用过这些)
还有一个位于Swing-Console的开源项目。
编辑:
另外的选择。如果您使用run-me.bat
文件分发应用程序怎么办?
@echo off
java -jar my-console-app.jar
您也可以更改标题。
您应该将 jar 文件与 java.exe 而不是 javaw.exe 重新关联。javaw 是 Java 的非 CLI 版本,但使用 java.exe 启动它应该可以解决问题。
这是如何做到这一点(假设你有管理权限):
assoc .jar=jarfileterm
ftype jarfileterm="PATH\TO\JRE\bin\java.exe" -jar "%1" %*
当然,将 PATH\TO\JRE 替换为正确的路径。完成此操作后,双击 .jar 文件应打开 CLI。
你至少有两个选择。
制作一个可执行的 jar 文件。
Windows 上的示例如下所示:
mkdir temp
cd temp
for %f in (..\dist\lib\*.jar) do @jar xf %f
jar xf ..\dist\YourJar.jar
jar cfe YourJar.jar com.something.Main *.*
您可以在此处阅读有关 jar 存档工具的更多信息:http: //docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/jar.html
使用 Maven,这要容易得多。在此处查看 Maven 阴影插件:https ://maven.apache.org/plugins/maven-shade-plugin/
制作 Java Web Start 应用程序
有关概述,请查看以下内容: http: //docs.oracle.com/javase/tutorial/deployment/webstart/
有关分步指南,请查看以下内容: http: //docs.oracle.com/javase/7/docs/technotes/guides/javaws/developersguide/contents.html