如何通过简单地调用其名称从终端 运行 java 应用程序?
How to run java application from terminal by simply calling its name?
我知道从终端调用 jar 文件的默认方式
java -jar myapp.jar
我想通过名称 myapp
从终端调用应用程序。我知道如果脚本保存在 /usr/bin/
中,可以通过这种方法从终端调用 shell 脚本(当然 .sh
扩展被删除)
可以用jar文件实现吗?我不想设置别名。我想通过从 bin
目录调用来专门执行此操作。
编辑:如果可以通过 java appname
之类的方式调用,那也会有所帮助。
编辑:我已经检查了 linux gcj
的用法,因为 Michael Aaron Safyan 在评论中重定向了我。但是 gcj
据说已经过时多年,不再是行业标准。
这可以通过创建一个 jad 文件并从终端调用 jad myapp
之类的东西来实现吗?
Unix shell 不能运行 jar 文件。唯一的解决方案是 a) 别名,或 b) 在名为 myapp
的文件中为此编写一个最小的包装器
#!/bin/sh
java -jar myapp.jar
并将其放入您的 bin 目录中。不要忘记使其可执行 (chmod 755 myapp
)。然后您可以通过 myapp
.
调用它
请注意,您可以更聪明地找到正确的版本等。如果您将其许可证包含在你的软件。
可以配置 Linux 将任意文件类型识别为可执行文件。我从来没有做过,但是 here 是对 binfmt_misc 内核能力的描述。
也就是说,这是一个罕见的 java 不需要设置类路径的程序。这最好通过 shell 脚本包装器来完成。
我知道从终端调用 jar 文件的默认方式
java -jar myapp.jar
我想通过名称 myapp
从终端调用应用程序。我知道如果脚本保存在 /usr/bin/
中,可以通过这种方法从终端调用 shell 脚本(当然 .sh
扩展被删除)
可以用jar文件实现吗?我不想设置别名。我想通过从 bin
目录调用来专门执行此操作。
编辑:如果可以通过 java appname
之类的方式调用,那也会有所帮助。
编辑:我已经检查了 linux gcj
的用法,因为 Michael Aaron Safyan 在评论中重定向了我。但是 gcj
据说已经过时多年,不再是行业标准。
这可以通过创建一个 jad 文件并从终端调用 jad myapp
之类的东西来实现吗?
Unix shell 不能运行 jar 文件。唯一的解决方案是 a) 别名,或 b) 在名为 myapp
#!/bin/sh
java -jar myapp.jar
并将其放入您的 bin 目录中。不要忘记使其可执行 (chmod 755 myapp
)。然后您可以通过 myapp
.
请注意,您可以更聪明地找到正确的版本等。如果您将其许可证包含在你的软件。
可以配置 Linux 将任意文件类型识别为可执行文件。我从来没有做过,但是 here 是对 binfmt_misc 内核能力的描述。
也就是说,这是一个罕见的 java 不需要设置类路径的程序。这最好通过 shell 脚本包装器来完成。