Как найти местоположение файла bash? - PullRequest
0 голосов
/ 03 февраля 2019

Я сделал исполняемый файл jar для терминальной игры, над которой я работал.Пока что я открыл его, набрав java -jar name.jar в Терминале.Это сработало, но когда я сделал файл .sh с той же командой, файл jar не был доступен.(ситуация [1])

Позже я понял, что если я укажу, где находится файл jar, он откроется.(ситуация [2]) Но jar-файл и bash-файл находятся в одной и той же папке, называемой playgame, и если бы я переместил эту папку в другое место, этот путь к файлу, указанный в bash-файле, больше не будет действительным. Итак, есть ли способ указать местоположение файла bash, где бы он ни находился?

Содержимое файла bash в ситуации [1]:

#! /bin/bash
java -jar game.jar

(не работает)

ситуация [2]:

#! /bin/bash
java -jar Desktop/playgame/game.jar

(работает, но ненадежно)

Я использовал chmod +rx bashfile.sh длясделать исполняемый файл bash.

Я попробовал его с файлом .command вместо .sh, он сделал то же самое.

Кроме того, я нахожусь на MacOS Mojave 10.14.2 если это имеет какое-либо значение.

Заранее спасибо!

1 Ответ

0 голосов
/ 04 февраля 2019

Вы также можете использовать shebang

(printf '#! /usr/bin/env java -jar\n'; cat game.jar) > game
chmod +x game

, и если game dir находится в PATH, вы можете вызвать только

$ game
...