如果我正在编写 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
.,而且您的客户可能需要一些系统管理员技能才能启用它)。