我已经为终端游戏制作了一个可执行的jar文件,可以通过在终端中键入java -jar name.jar
来打开它。
然后,我在与jar文件相同的文件夹中制作了一个.sh
文件,通过双击.sh
将其打开。我问如何做here,那里的人告诉我在.sh
中使用代码[1]。
这工作了一段时间,但是当我重命名文件夹时,我意识到如果将文件夹移动到笔式驱动器上,整个过程将停止工作,并且在终端机中会显示[2]。 那么,如何查找.sh
和jar所在的文件夹的文件路径,而不管它在哪里,它的名称是什么以及它在哪个驱动器上?
抱歉,这是不可能的。
[1]:
#! /bin/bash
DIR=$(dirname "$0")
java -jar "$DIR/game.jar"
[2]:
Error: Unable to access jarfile /Volumes/Hard
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
[Process completed]
此外,如果有任何重要意义,我正在使用MacOS Mojave 10.14.4。
谢谢!
答案 0 :(得分:0)
您可以使用环境变量 $PWD 存储工作目录的完整路径,就像在这个例子中一样(在 5 分钟内完成,只是为了向您展示它是如何工作的):>
#!/bin/bash
DIR=$PWD
gamePath='java -jar '$DIR'/game.jar'
echo $gamePath
无论我在哪里执行这个脚本,它都会显示工作目录,即使我更改了父目录的名称。让我告诉你:
您可以看到 $PWD 环境变量效果很好。 现在,我将目录名称从 TestFolder 更改为 TestFolderRenamed 并再次执行脚本:
因此,就您而言,请按以下方式更改代码:
#! /bin/bash
DIR=$PWD
java -jar "$DIR/game.jar"
它应该有效。