Я пытаюсь запустить jar-приложение под Ubuntu, поэтому я установил OpenJDK Java 7 Runtime, но при открытии этого приложения я получил следующее сообщение:
Файл '/ home / aimad /Programms/jMerise/JMerise.jar 'не помечен как исполняемый. Если это было загружено или скопировано из ненадежного источника, запуск может быть опасным. Для получения более подробной информации читайте о исполняемом бите.
BLOCKQUOTE>
Вы всегда можете запустить файл jar, выполнив java -jar JMerise.jar
.
Однако, чтобы сделать сам файл jar исполняемым, вам нужно установить исполняемый бит, как подсказывает сообщение. chmod +x /home/aimad/Programms/jMerise/JMerise.jar
выполнит это.
После этого вы можете сделать ./JMerise.jar
, чтобы запустить его.
man chmod
предоставит вам информацию о том, как работает chmod.
Также см .: https://wiki.ubuntu.com/Security/ExecutableBit
.Щелкните правой кнопкой мыши файл, выберите «Свойства», затем перейдите на вкладку «Разрешения» и установите флажок «Разрешить выполнение этого файла как программы».
Поскольку вы запускаете приложение jar с помощью java -jar application.jar
, это означает, что java находится на вашем пути. Вам нужны две простые вещи: 1) добавить интерпретатор (который, по-видимому, #!java -jar
) в первой строке вашего jar-файла, как вы делаете это с помощью сценариев оболочки:
echo '#!java -jar' > app.jar
cat application.jar >> app.jar
mv app.jar application.jar
Если вы котируете содержимое вашего jar-файла, который вы увидите, начинается с примера: #!java -jar
PK
^lN BOOT-INF/PK
.....
.....
2) добавьте атрибут execute к chmod +x application.jar
Теперь вы можете «запустить» его через ./application.jar
.
Сначала вам нужно убедиться, что в вашей системе имеется подходящая среда выполнения Java. В официальном репозитории Ubuntu есть openjdk, который на 99,99% совместим с Oracle Java, для его установки введите:
sudo apt-get install openjdk-7-jre
Далее создайте файл с именем java-jar-launcher.desktop
в ~/.local/share/applications
и поместите следующее содержание в нем:
[Desktop Entry]
Type=Application
Name=Java Application Launcher
Icon=java
Exec=/usr/bin/java -jar %U
Categories=Application;Java
Terminal=False
Затем добавьте следующую строку в ~/.local/share/applications/mimeapps.list
:
application/x-java-archive=java-jar-launcher.desktop;
Теперь вы сможете просто дважды щелкнуть банку файлы, чтобы запустить их, если ничего не происходит, щелкните правой кнопкой мыши файл JAR, выберите свойства, затем перейдите на вкладку «Открыть с помощью» и там вы должны увидеть «Java Application Launcher», выберите его.
Этот метод предпочтителен (IMHO), потому что таким образом вы не даете разрешения на выполнение файлов JAR, которые могут быть потенциально опасными. Этот метод будет работать только в графической среде, и пользователю необходимо вручную дважды щелкнуть файл.
Если запуск файла .jar из командной строки работает (java -jar myFile.jar
), но двойной щелчок по нему в графическом интерфейсе не удастся, и если sudo chmod +x myFile.jar
кажется успешным, но вы все равно не можете открыть с помощью двойного щелчка и если щелкнуть правой кнопкой мыши файл .jar> Свойства> Разрешения> «Разрешить выполнение файла как программы» не работает (т. е. флажок переключается обратно сразу после его щелчка), то, вероятно, файл .jar находится в файле NTFS система, которая не позволяет выполнять разрешения для отдельных файлов. (Эта проблема может возникать, например, при двойной загрузке и наличии общего раздела NTFS между Ubuntu и Windows).
Создание модуля запуска (как описывает @ tusharkant15) будет работать, потому что за кулисами вы выполняете /usr/bin/java
, а не сам файл .jar. Перемещение файла .jar в другую файловую систему, отличную от NTFS, также будет работать.