Я пытаюсь добиться запуска 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. Может ли это быть причиной? Как я могу это исправить?

1 ответ1

0

Есть хорошее решение, которое заставляет файлы jar Java обрабатываться как исполняемый файл, не требуя сценариев оболочки, хотя его установка немного сложна:

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

Я считаю, что в популярных дистрибутивах есть пакеты, которые разберутся для вас, хотя я сам недавно этим не пользовался.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .