Выполнить банку с двойным щелчком в Linux

2631
atoMerz

Я пытаюсь добиться запуска java-программы в любой системе Linux (Ubuntu, Fedora и т. Д.) С максимальным охватом, просто дважды щелкнув файл, как в Windows.
Я создал файл .sh (и получил разрешения на выполнение) со следующим содержимым:

#!/bin/sh java -Xmx512M\ -Djava.library.path="."\ -DclientAppDataPath="Application Data"\ -jar Client.jar\ Phoenix.client.ClientMain\ 1>output.txt 2>error.txt 

Если я пытаюсь запустить этот файл с помощью терминала Ubuntu, он работает нормально. Однако, когда я пытаюсь дважды щелкнуть файл и выбрать «Выполнить» или «Выполнить в терминале», я ничего не вижу. Видимо оболочка открывается и закрывается сразу. Как мне избежать этого?

РЕДАКТИРОВАТЬ:
я заметил error.txt содержит:

бла / бла / бла / Клиент Launcher.sh: 2: бла / бла / бла / Клиент Launcher.sh: java: не найден

Я извлек jdk1.xxtar.gz и добавил java home в PATH вручную, используя файл .bashrc. Может ли это быть причиной? Как я могу это исправить?

0
Попробуйте использовать полный путь к Java. pjc50 10 лет назад 2
@ pjc50, блин! Это сработало. Это не решает мою проблему в целом (программа установки генерирует этот файл), но, по крайней мере, я уверен в том, что происходит. atoMerz 10 лет назад 0
Если вы не используете локально установленную (т.е. не установленную управлением пакетами) версию java, ваш скрипт не знает, где он находится. `.bashrc` оценивается только при входе в интерактивный сеанс. Tim 10 лет назад 0

1 ответ на вопрос

0
pjc50

There's a nice solution which causes Java jar files to be treated as an executable without requiring shell scripts, although it's a little fiddly to set up:

https://wiki.archlinux.org/index.php/Binfmt_misc_for_Java

I believe that popular distros have packages that will sort it out for you, although I've not used it myself recently.

Похожие вопросы