如果我正在编写 HelloWorld,是否可以通过键入 HelloWorld 从任何目录运行程序?设置好 Ant 之后的方式是一样的,您可以从任何目录运行 Ant 吗?
只是为了一些细节,我们正在为客户创建一个基于 CLI 的工具包,只是好奇我们是否可以编译、安装它,并让他们使用工具包名称运行它。
如果我正在编写 HelloWorld,是否可以通过键入 HelloWorld 从任何目录运行程序?设置好 Ant 之后的方式是一样的,您可以从任何目录运行 Ant 吗?
只是为了一些细节,我们正在为客户创建一个基于 CLI 的工具包,只是好奇我们是否可以编译、安装它,并让他们使用工具包名称运行它。
您始终可以创建一个 shell 脚本,调用它HelloWorld并使其java与您的 JAR 一起运行。
然后,您需要chmod脚本使其可执行,并将其放置在$PATH.
该脚本将类似于:
#!/bin/bash
cd /path/to/helloworld
java -jar HelloWorld.jar "$@"
或者
#!/bin/bash
java -jar /path/to/helloworld/HelloWorld.jar "$@"
取决于您的具体要求。
在 Linux(特别是)上,您可以使用/proc文件系统(参见proc(5)手册页)及其binfmt_misc(实际上是/proc/sys/fs/binfmt_misc/register伪文件和 下的其他伪文件/proc/sys/fs/binfmt_misc/)注册java为.class或.jar文件的处理程序。阅读内核源代码中的Documentation/binfmt_misc.txt文件以获取详细信息。
然后任何可执行.jar文件将由java(或jexec)解释
我不确定这是否值得。我发现将您的 Java 程序包装在一些 shell 脚本中要容易得多(并且更便携,因为实际上很少有 Linux 系统使用binfmt_misc.,而且您的客户可能需要一些系统管理员技能才能启用它)。