java - 如何通过简单地调用其名称来从终端运行java应用程序?

标签 java unix terminal

我知道从终端调用 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 调用它。

请注意,您可以更聪明地找到正确的版本等。您可以简单地从您最喜欢的 MIT/BSD 许可的 Java 应用程序中获取这样的脚本,如果您将其许可证包含在您的软件中的话。

关于java - 如何通过简单地调用其名称来从终端运行java应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31184713/

相关文章:

java - 将 GZIP 压缩与 Spring Boot/MVC/JavaConfig 与 RESTful 结合使用

java - 合并两个列表,不重复

java - 如何在取消的 CompletableFuture 中释放资源

Java从数组列表中获取随机字符串

c - 使用 STDOUT_FILENO、STDIN_FILENO 和\n 解释读、写系统调用行为

java - 基于终端的 IDE

c - 给出 5 个参数,但在终端中只得到 3 个参数

linux - 如何将日志文件重定向(管道)到控制台?

PHP 文件时间函数 - "stat failed for"

postgresql - Postgres 语言环境错误