我正在编写一个可以在所有流行平台(Windows、Mac 和 Linux)上运行的命令行工具。我正在考虑编写它,golang因为它可以生成静态编译的二进制文件,并且可以在上述所有平台上运行。在我做出决定之前,我需要评估Java一下,看看它是否可以做到这一点。我想知道是否可以在 Java 中创建一流的命令行程序?AFAIK,需要像这样启动 Java 程序java -cp classpath MyApp现在我需要将它包装在一个 shell 脚本中以改善体验。就像是,#!/bin/shjava -cp classpath MyApp $@现在用户可以这样做:myapp --arg1 value --arg2 value问题是这种方法不是跨平台的。在 Windows 上,我需要编写一个批处理文件来执行此操作。我不确定这是否是在 Java 中做的正确方法。有没有更好的方法来处理这个问题?
3 回答
Helenr
TA贡献1780条经验 获得超4个赞
您发布的解决方案(调用 java 的平台特定脚本文件)确实是最容易和最快实现的。如果这还不足以满足您的需求,则有几种解决方案可提供更好的可用性:
可执行的 jar 文件。基本上通过在 MANIFEST.MF 条目中声明您的主类,通过双击某些平台(当然是 windows,其余的我不确定),文件变得可执行。请注意,这需要在机器上正确安装 JRE。
服务包装器。有 3rd 方产品会将您的 Java 应用程序包装在本机可执行文件中,并让您的应用程序“感觉”像本机应用程序。最常用的是tanuki 服务包装器,但还有其他的(launch4j是一种开源替代品,适合您所需的操作系统集)
添加回答
举报
0/150
提交
取消