Исполняемый JAR на Ubuntu (NetBeans) - PullRequest
9 голосов
/ 05 августа 2011

Я пишу простое приложение Swing в NetBeans и впервые делаю это на компьютере с Ubuntu.

Как многие из вас знают, NetBeans автоматически создает исполняемые файлы JAR для проектов, которые "установлены в качестве основных".

В Windows вы можете дважды щелкнуть исполняемый файл JAR, и он автоматически вызовет JRE и запустит приложение. В Ubuntu двойной щелчок по файлу .jar приводит к открытию файла в диспетчере архивов. Чтобы запустить мой JAR-файл, я должен либо щелкнуть его правой кнопкой мыши и выбрать «Открыть с помощью OpenJDK Java 6 Runtime», либо запустить его из командной строки.

Из командной строки у меня нет проблем вообще. Однако , когда я пытаюсь запустить его из контекстного меню, я получаю сообщение об ошибке:

Файл MySwingApp.jar не помечен как исполняемый ...

Итак, у меня есть 2 вопроса:

  1. Что мне нужно сделать, чтобы установить его как исполняемый файл? Это то, что я могу сделать внутри NB, или я должен использовать оболочку? Если мне нужно установить разрешения через оболочку, не противоречит ли это политике автоматического генерирования ** исполняемых файлов ** JARS? И какую команду я бы использовал, чтобы перевернуть исполняемый бит в любом случае?!?!
  2. Это просто сбой Linux? Я хочу отправить этот JAR другу, который запускает Windows, и я хотел бы, чтобы он мог просто дважды щелкнуть по нему и запустить программу

Спасибо за любые полезные предложения!

Ответы [ 5 ]

5 голосов
/ 05 августа 2011
  1. Вам потребуется вручную настроить процесс сборки, чтобы файл JAR был помечен как исполняемый в Netbeans.Перейдите в корневой каталог своего проекта и откройте build.xml.В шапке есть инструкции по добавлению в процесс сборки.Есть цель, "-post-jar", которая вызывается после того, как jar построен.Вам нужно будет сделать эту цель и использовать задачу Ant's chmod , чтобы изменить свою банку.Как только вы это сделаете, это будет происходить каждый раз, когда вы создаете jar-файл в этом проекте.

  2. Он будет отлично работать на компьютере вашего друга с Windows, если у него установлена ​​JRE.

Вот поток о запуске jar-файлов с использованием двойного щелчка в Linux.

3 голосов
/ 06 мая 2013

Вы можете использовать Java как собственный двоичный файл в Ubuntu (и других linux), это особенность ядра.Вам нужно установить пакет binfmt-support, чтобы дать ядру ловушки для запуска java таким образом.

В Ubuntu откройте терминал и запустите:

sudo apt-get install binfmt-support

Затем сделайте исполняемый файл JAR

chmod a+x yourjar.jar

Затем вы можете запустить JAR, как и любой другой двоичный файл, набрав

yourjar.jar

1 голос
/ 25 июля 2012

Я прошел через Интернет и наткнулся на одну статью с подробными инструкциями по запуску jar-файла http://mlartist.blogspot.in/2012/07/deployment-netbeans-project-in-linux.html

1 голос
/ 05 августа 2011

Jar-файлы не являются исполняемыми файлами первого класса, и они не становятся магически исполняемыми при изменении их флага исполняемых файлов.

Если вы выполняете jar, вы запускаете команду

 java -jar YOURJAR.jar ...

Это то же самое, как если бы вы дважды щелкнули png-файл и ожидали, что он запустится в программе рисования

 gimp YOUR.png

Вам не нужно делать свой png исполняемым, и это не решит проблему.

Вместо этого вы должны указать среде рабочего стола, что делать при двойном щелчке по jar или png-файлу, и вы должны сделать это в Linux так же, как в Windows - возможно, установщик наWindows делает это за вас, потому что обычно есть только в Desktop Environment (Windows) в ОС (Windows), но Linux имеет Gnome, KDE, XFCE, LXDE, fluxbox и миллионы других.

И это не так точно, что вы хотите с ним делать.Поскольку jar-файлы представляют собой особую форму упакованных zip-файлов, обычно содержащих Manifest и классы, Archivmanager не является ложным решением, и его содержимое отображать в архиве безопаснее, чем его выполнять.

Копирование файла в Windows не имеет никакого эффекта.Windows даже не имеет исполняемого флага, но вы не должны возиться с ним.Вы изменяете настройки рабочего стола, и они не могут быть перемещены в окна, и вы не захотите.

И если у вас есть правильные настройки в вашей DE, вам не нужно повторно указывать Netbeans или любой другой IDE, что делать с jar-файлами.

0 голосов
/ 11 августа 2011

Jar-файлы - это, в основном, zip-файлы, для создания исполняемого файла у вас есть несколько различных методов. Лучшее (на мой взгляд) использовать муравей для его создания. Или вы можете просто echo "Main-Class: YOUR.MAIN.CLASS" >> Manifest и затем создать свой jar с помощью jar -cmf Manifest JARFILENAME.jar INPUTFILES, чтобы сделать его исполняемым в Linux, щелкните правой кнопкой мыши и выберите «Свойства». Затем нажмите на вкладку разрешения и отметьте execute. или вы можете быть терминалом bamf и cd в директории jar и chmod +x JARFILE.jar СЧАСТЛИВЫЙ NIXING !!

...