使用命令提示符/终端启动 Java 可执行文件 - 批处理/Shell/命令文件

Posted

技术标签:

【中文标题】使用命令提示符/终端启动 Java 可执行文件 - 批处理/Shell/命令文件【英文标题】:Launching Java Executable using Command Prompt / Terminal - Batch/Shell/Command files 【发布时间】:2021-08-14 07:49:55 【问题描述】:

我很想知道如何为用户提供批处理/shell/命令文件来打开我的 Java 可执行 jar 文件。

例如,

launch-windows.bat 在 Windows 机器上启动 Java 应用程序

launch-linux.sh 在 linux 机器上启动 Java 应用程序

launch-mac.command 在 macOS 机器上启动 Java 应用程序

这些文件将与 JAR 文件位于同一目录中。

编辑: 我有这个适用于 Windows PC,类似的问题不适用于 mac...

批处理文件内部只产生这个:

java -jar myJar.jar

【问题讨论】:

【参考方案1】:

当您为应用的潜在用户编写启动器脚本时。您不能对他们的环境配置做出很多假设。如果出现问题 - 您必须向用户提供错误消息并进行解释 - 出了什么问题。

通常在此类脚本中,在执行应用程序之前会进行一些检查,以确保满足所有先决条件。对于 java 应用程序,您必须检查是否有 java 安装:)

例如 Windows 脚本:

IF "%JAVA_HOME%"=="" (
        ECHO "ERROR: Java home is not set"
        EXIT /B
        )

"%JAVA_HOME%\bin\java" -jar myJar.jar

以Shell脚本为例:

if [ -n `which java` ]; then
  echo "Java found"
else
  echo "Java NOT found!"
  exit 1
fi

exec $JAVA_HOME/bin/java -jar myJar.jar

使用JAVA_HOME 环境变量来提供Java 二进制文件的路径是一种标准。例如,Maven 使用它。 这些脚本确保已配置此变量,如果未提供,将通知用户。

以类似的方式检查执行应用程序的其他先决条件。

P.S 我没有使用 mac 的经验,但我认为 shell 脚本会以某种方式在那里工作。

【讨论】:

以上是关于使用命令提示符/终端启动 Java 可执行文件 - 批处理/Shell/命令文件的主要内容,如果未能解决你的问题,请参考以下文章

Mac 终端提示 Permission denied 权限问题

wmic文件怎么使用

jar命令成功完成 java -jar 命令却提示“没有主清单属性”!

linux下如何运行可执行文件

linux中怎样开机启动python程序

ubuntu怎样打开终端(方法5种)