Как я могу выполнить файл .jar из терминала


124

Я знаю, что для выполнения файла я использую .команду, затем имя файла с пробелом между ними. Но я пытаюсь выполнить файл .jar с помощью, .и он не работает. Я вошел в свойства и отметил его как исполняемый файл и заставил его работать с Java.

Есть ли способ выполнить файл с Java в Bash Terminal? Я пытаюсь выполнить файл Minecraft.jar

Я пытаюсь выполнить файл Minecraft.jar.


4
Привет и добро пожаловать, jaorizabal. Я немного исправил твой вопрос. Может быть, вы можете установить проверку правописания для вашего браузера, чтобы улучшить следующий вопрос самостоятельно. Еще один совет: для проблем с текстом вы можете пометить текст с помощью мыши в терминале, а затем вставить его в поле редактирования вашего браузера (и в других местах), щелкнув средней кнопкой мыши по колесу прокрутки. Затем вы можете создать свой код с помощью кнопок в поле редактирования. Это намного быстрее, чем делать снимок экрана и загружать его.
пользователь неизвестен

Ответы:


200

.Синтаксис может быть использован только для запуска (от «источников») сценариев оболочки.

Вам нужно будет использовать javaкоманду для запуска .jarфайла:

java -jar Minecraft.jar

Если у вас не установлена ​​Java, вы можете это исправить, установив default-jreпакет ¹. Вы можете увидеть, если у вас уже установлена ​​Java, запустив в терминале:

java -version 

[1]: Это установит стандартную среду исполнения openjdk Java. Вы можете использовать openjdk-8-jre, или openjdk-7-jre, или openjdk-6-jreвместо этого, если хотите, - то, что доступно в вашей версии Ubuntu.


$ java -jar schemaSpy_5.0.0.jar *** Required parameter '-o' was not specified. ***
Картик Т

31

Linux вполне способен запускать чужой двоичный файл, такой как файл JAR. Так работает Wine, например. Чтобы запустить JAR-файлы как исполняемые, выполните в консоли следующее

sudo apt-get install binfmt-support

Перейдите в файл JAR и измените его на исполняемый (вы также можете сделать это через свойства файла в Nautilus)

chmod a+rx myjar.jar

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

./myjar.jar

Примечание. Убедитесь, что у вас загружен модуль ядра binfmt_misc . Если вы используете ваше собственное скомпилированное ядро ​​без этого модуля, binfmt-support не будет работать.


1
Спасибо! Это именно то, что я искал. Это лучше, чем использование java -jar, потому что не требует, чтобы хост-программа знала, что это java-программа, и это лучше, чем использование скрипта, потому что вам не нужно беспокоиться о прохождении через STDIN и OUT.
Srlm

2
Не работает в Debian 9: «неверный файл (неверное магическое число): ошибка в формате Exec»
Пол

16

Если это исполняемый файл jar, то

java -jar Minecraft.jar 

Не все jar-архивы содержат исполняемый класс, объявленный для запуска в файле манифеста, но если он есть, это будет работать.

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

Скомпилированный двоичный xybin просто запускается с его именем, если он находится в пути:

xybin 

или с его абсолютным путем:

/home/foo/proj/test/xybin

или с его относительным путем:

proj/test/xybin

или, если вы оказались в каталоге файла, с этим относительным путем:

./xybin

Файл должен быть помечен как исполняемый для вас (см .: chmod). Все вышесказанное верно и для сценариев оболочки, но они часто имеют расширение .sh, и вы можете запустить сценарий оболочки, вызвав интерпретатор, и тогда его не нужно отмечать исполняемым:

 bash xy.sh

Если вы не хотите запускать новый bash, вы можете использовать исходный код и использовать его для определения функций, псевдонимов и настроек переменных.


7

Вы также можете сделать хорошую запись для приложения в Unity. выполните следующие команды:

gedit ~/.local/share/applications/minecraft.desktop

В появившемся окне скопируйте и вставьте следующее:

[Desktop Entry]
Type=Application
Name=Minecraft
Comment=Click here to play Minecraft
Exec=java -jar /path/to/minecraft.jar
Icon=/path/to/minecraft/icon.png
Terminal=false
Categories=Game;

Возможно, вам придется выйти и снова войти, чтобы увидеть эффекты. :) Также вам нужно поискать в интернете красивую иконку Minecraft, так как они не предоставляют ее для загрузки ..


4
  1. Откройте командную строку с помощью CTRL+ ALT+T
  2. Перейдите в каталог с файлами ".jar". Если ваша версия / фреймворк Ubuntu поддерживает это, вы сможете щелкнуть правой кнопкой мыши по каталогу вашего файла .jar и нажать «Открыть в терминале».
  3. Введите следующую команду:

    java -jar jarfilename.jar

Таким образом, ваш файл .jar будет выполняться.


4

Установите jarwrapper. После этого (и добавив исполняемый бит) вы можете запустить файл jar, просто введя имя jarfile.

sudo apt-get install jarwrapper

Это работает с помощью binfmtдобавления поддержки нового двоичного формата в ядро.



-1

если вы хотите установить jar с определенной версией java, укажите также каталог java

/scratch/app/product/Software/jdk1.8.0_112/bin/java -jar /path-to-jar/Minecraft.jar
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.