Проблема с запуском jar-файла в Ubuntu

Проблема с запуском jar-файла в Ubuntu

Почему .jarскрипт запускается, когда я запускаю его как java -jar myfile.jar, но не запускается, когда я выполняю его как ./myfile.jar

решение1

Когда вы запускаете свой jar с помощью java -jar myfile.jarвы говорите своей оболочке запустить javaкоманду и передаете ей некоторые аргументы, которые javaона понимает. Однако когда вы запускаете его с помощью ./myfile.jarвы просите оболочку определить прерыватель для его запуска, чего она сделать не может.

Оболочка ищет строку shebang в начале скрипта, чтобы узнать, с каким приложением его запускать, поэтому вы увидите скрипты оболочки, начинающиеся с:

#!/bin/bash

Или скрипты Python начинаются с

#!/usr/bin/python

По сути, вы сообщаете оболочке, что нужно запустить скрипт, используя приложение, которое вы найдете в /bin/bashили /usr/bin/python. В случае с вашим jar-файлом оболочка не может найти shebang, поэтому она не знает, как выполнить код.

Раньше я использовал скрипты-оболочки для выполнения приложений Java, поэтому что-то вроде этого:

#!/bin/bash

java -jar /path/to/myfile.jar

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

решение2

Я установил jdk с помощью sudo apt-get install openjdk-7-jdk и jre с помощью sudo apt-get install openjdk-7-jre, но все равно столкнулся с этой проблемой. Я думал, что это может быть связано с тем, что моя система не может найти путь java. Наконец, когда я установил установщик oracle jdk7 с помощью следующих команд, я смог запустить файл .jar с помощью команды ./myfile.jar. Я использовал следующие команды для его установки:

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get обновление

sudo apt-get install oracle-jdk7-installer

Связанный контент