【问题标题】:Launching Java Executable using Command Prompt / Terminal - Batch/Shell/Command files使用命令提示符/终端启动 Java 可执行文件 - 批处理/Shell/命令文件
【发布时间】: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

【问题讨论】:

    标签: java shell batch-file command


    【解决方案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 脚本会以某种方式在那里工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多