如何将 Java 应用程序安装到我的 linux 系统

How to install Java application to my linux system

我编写了一个 Java 应用程序来分析我的 phone 账单并计算平均值。目前我像这样执行它:

$ java -jar analyze.jar bill_1.pdf bill_2.pdf

但我想将该应用程序安装到我的系统中。所以我可以在应用程序的名称和参数中启动一个终端类型,然后按回车键。与任何其他 "normal" 程序一样。

$ analyze bill_1.pdf bill_2.pdf bill_3.pdf

我知道我可以编写 shell 脚本并将其安装到“/usr/bin/”,但我不敢相信没有 "native" 方法。

所以请帮忙,抱歉转储问题。

提前致谢

到目前为止你所做的基本上是"the native"方式。

您必须牢记:Java 应用程序被编译为 字节代码 。您的应用程序根本没有可以调用的 binary。您确实需要使用指向您想要 运行 的主要 class 的指针来调用一些 JVM 安装。换句话说;这就是绝大多数 java 应用程序正在做的事情。

理论上,您可以使用一些产品从您的应用程序中实际创建一个 "true" 二进制文件;但这不是一条简单的道路(请参阅 here 了解初学者);并根据你的说法,你只是在寻找更多 "convenience" 在这里绝对不合适。

一个巧妙的小技巧是您可以将基本 shell 脚本附加到 jar 文件的开头,这将 运行 它适当地。有关完整示例,请参阅 here,但基础知识是:

stub.sh

#!/bin/sh
MYSELF=`which "[=10=]" 2>/dev/null`
[ $? -gt 0 -a -f "[=10=]" ] && MYSELF="./[=10=]"
java=java
if test -n "$JAVA_HOME"; then
    java="$JAVA_HOME/bin/java"
fi
exec "$java" $java_args -jar $MYSELF "$@"
exit 1

然后做...

cat stub.sh helloworld.jar > hello.run && chmod +x helloworld.run 

你应该准备好了!现在你可以直接调用脚本化的jar。

./helloworld.run