首页 > 解决方案 > 在 sh 脚本中运行 jarfile - 什么路径?

问题描述

所以我制作了这个简单的 java 应用程序,我想通过简单的双击来运行它,打开我的终端并在 Mac 上运行代码。

我写了一个像这样的简单 start.sh 脚本

#!/bin/sh
java -jar monkeykingApplication.jar

但这给了我和错误,因为无法找到罐子。那么如果在我的 jar 文件所在的文件夹中运行我的 start.sh 脚本,我需要设置什么路径?

标签: bashjar

解决方案


您的示例sh用作 shell,但您将问题标记为bash,所以我冒昧地提出一个 bash 解决方案:

由于您将 jar 与 bash 启动脚本一起提供,因此我要求用户将启动脚本和 jar 安装在同一目录中。在您的启动脚本中,您可以找到自己的位置,并使用此信息来定位 jar。如何找到此位置,已在此处讨论。使用该页面中的一个答案,您可以执行以下操作:

#!/bin/bash
# Find your own location
install_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
# Invoke the jar
java -jar "$install_dir/monkeykingApplication.jar"

最有可能的是,用户会将启动脚本的目录添加到他们的 PATH 变量中,但这是他/她自己的决定,您不必关心这一点。


推荐阅读