使用命令提示符/终端启动 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 权限问题