Як я можу зробити .jar файл виконуваним?


11

Я намагаюся запустити jar додаток під Ubuntu, тому я встановив OpenJDK Java 7 Runtime, але коли я відкриваю цей додаток, я отримав це повідомлення:

Файл '/home/aimad/Programms/jMerise/JMerise.jar' не позначений як виконуваний. Якщо це було завантажено або скопійовано з недовіреного джерела, це може бути небезпечно запустити. Детальніше читайте про біт, який виконується.

Відповіді:


17

Ви завжди можете запустити файл 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


7

Клацніть правою кнопкою миші на файл, клацніть на властивості, потім перейдіть на вкладку Дозволи та встановіть прапорець "Дозволити виконання цього файлу як програми".

введіть тут опис зображення


Що робити, якщо я не можу встановити це поле вище, щоб "дозволити виконання файлу як програми"? Я перевіряю це, але через мить він автоматично не перевіряється!
user961627

@ user961627 У вас, ймовірно, файл .jar зберігається на розділі, який не підтримує виконуваний біт. Докладнішу інформацію див. У розділі Неможливо зробити файл виконуваним .
wjandrea

4

Спочатку вам потрібно буде переконатися, що у вашій системі є відповідне середовище виконання 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, щоб їх запустити, якщо нічого не відбувається, тоді клацніть правою кнопкою миші файл jar, виберіть властивості, потім перейдіть на вкладку "Відкрити за допомогою" і там ви побачите "Запуск програми Java", виберіть це .

Цей спосіб є переважним (IMHO), оскільки таким чином ви не даєте дозволу на виконання файлів jar, які можуть бути небезпечними. Цей метод працюватиме лише в графічному середовищі і потребує користувача вручну двічі клацнути по файлу.


2

Оскільки ви запускаєте додаток для банку, java -jar application.jarто це означає, що на вашому шляху ява. Вам потрібні дві прості речі: 1) додати інтерпретатора (який, мабуть, є #!java -jar) в перший рядок файлу jar jart, як ви це робите зі своїми скриптами оболонки: 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.


0

Якщо запускається .jar файл із командного рядка, працює ( java -jar myFile.jar), але двічі клацнути його в графічному інтерфейсі - це не робиться, і якщо sudo chmod +x myFile.jarвиявляється успішним, але ви все одно не можете відкрити його подвійним клацанням та якщо клацніть правою кнопкою миші .jar файл> Властивості> Дозволи> "Дозволити виконання файлу як програми" не працює (тобто прапорець перемикається назад відразу після натискання на нього), можливо, файл .jar знаходиться у файловій системі NTFS, яка не дозволяє виконувати дозволи на на основі файлів. (У вас може виникнути ця проблема, якщо, наприклад, ви маєте подвійне завантаження і маєте спільний розділ NTFS між Ubuntu та Windows).

Створення запуску (як описано @ tusharkant15) буде спрацьовувати, оскільки за лаштунками, які ви виконуєте /usr/bin/java, а не самим файлом .jar. Переміщення файлу .jar до іншої файлової системи, яка не є NTFS, також буде працювати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.