우분투에서 jar 파일을 실행할 때 문제가 발생합니다.

우분투에서 jar 파일을 실행할 때 문제가 발생합니다.

.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

sudo apt-get install openjdk-7-jdk를 사용하여 jdk를 설치하고 sudo apt-get install openjdk-7-jre를 사용하여 jre를 설치했지만 여전히 이 문제에 직면했습니다. 내 시스템이 Java 경로를 찾을 수 없기 때문일 수 있다고 생각했습니다. 마지막으로 다음 명령을 사용하여 oracle jdk7 설치 프로그램을 설치했을 때 ./myfile.jar 명령을 사용하여 .jar 파일을 실행할 수 있었습니다. 다음 명령을 사용하여 설치했습니다.

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get 업데이트

sudo apt-get 설치 oracle-jdk7-installer

관련 정보