"jarfile에 액세스 할 수 없습니다"오류의 원인은 무엇입니까?


135

IDE를 사용하지 않고 프로그램을 실행하고 싶습니다. jar 파일과 실행 가능한 jar 파일을 만들었습니다. exe jar 파일을 두 번 클릭해도 아무런 변화가 없으며 cmd에서 명령을 사용하려고하면 다음과 같이 나타납니다.

Error: Unable to access jarfile <path>

나는 명령을 사용한다 : java -jar Calculator.jar

항아리를 어떻게 만들었습니까?

  1. 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하십시오 (계산기)
  2. 고르다
  3. Java 폴더를 클릭하고 "Executable Jar File"을 선택한 후 다음을 선택하십시오.
  4. 발사 구성 : 메인-계산기
  5. 내보내기 대상 만들기
  6. "마침"을 누르고 이익을! 글쎄,별로.

1
항아리가 어떤 식 으로든 손상되어 매니페스트 항목이 누락되었을 수 있습니다.
— MadProgrammer

JAR 작성 방법, 그 내용 및 프로그램 실행 방법을 보여 주어야합니다. Java 코드는 여기와 관련이 없습니다.
— Jochen

elcipse를 다시 시작하고 다시 컴파일 해 보셨습니까? 때때로 이클립스는 재실행으로 피할 수있는 이상한 일들을한다.
— MattS

코드를 읽고 생각하기가 어렵다는 것을 알았습니다. 그리고 정적 메인 함수에 모든 것을 가지고 있고 콘솔을 지우는 단일 인스턴스 메소드를 갖는 점은 무엇입니까?
— Dave Newton

1
나는 내 문제에 대한 답이없고, 스스로 대답했으며, 답장을 통해 고마워하는 것 외에는 의견에 감사를 표할 방법이 없습니다. 귀하의 의견을 다시 읽으십시오.
— 조셉 스미스

답변:


78

Jar 파일을 다음과 같이 실행할 때이 문제가 발생했습니다.

java -jar TestJar

대신에

java -jar TestJar.jar

확장명 .jar 이 없으면 이 문제가 발생합니다.


1
이것이 정답입니다. jar 파일 이름에 .jar 확장자를 추가해야합니다.
— Abhijay Kumar

10
항상 정답은 아니며 추가하고 있으며 작동하지 않습니다.
— Alan B

제 경우에는 파일이 콘솔의 폴더 인 동안 파일이라고 생각했습니다. jar 파일이 같은 이름의 폴더에있었습니다.
— Willy Makend

58

결정된

방금 다른 폴더에 넣고 작동했습니다.


62
왜 이런 일이 일어 났는지 설명 할 수 있습니까?
— 아나 스타시 오스 안드로 니 디스

7
파일 권한 문제 일 수는 있지만 들리는 것처럼 들립니다.
— Aiden Fry

2
cygwin을 사용하여 Windows에서 비슷한 문제가 발생했습니다. 창보다 더 그래서 Cygwin에서 사용하는 서로 다른 경로를 /cygdrive/c/대 C:\ 내가 사용하여이 고정 realpath --relative-to=$(pwd) path/to/jarfile항상 사용하여 상대 경로 이소을 적용합니다 그래서/cygdrive/c/.../path/to/jarfile
— 릭

1
병과 같은 문제가 발생하여 실수로 병의 경로를 잘못 입력했습니다
— Ori Wiesel

1
@Rik 귀하의 의견은 cygwin 경로의 dos 경로 및 java 파일에서 작동하지 않지만 유용합니다. 솔루션은 여기에있을 것입니다java -jar $(cygpath -a -d `realpath --relative-to=$(pwd) $HOME/opt/javafile.jar`)
— cy8g3n

31

[아마도 Windows에만 해당]

jar이 현재 작업 디렉토리에있는 경우에도 경로의 공백에주의하십시오. 예를 들어, 나를 위해 이것은 실패했습니다.

java -jar myjar.jar

항아리에 대한 인용 된 전체 경로를 givng 하여이 문제를 해결할 수있었습니다.

java -jar "%~dp0\myjar.jar" 

크레디트는 저를 올바른 길로 안내 해준 이 답변으로 갑니다 ....


고마워 다른 디렉토리에서 실행하려는 경우 Linux에서도 전체 경로를 제공해야합니다.
— Pubudu

이 답변은이 질문에 대해 이미 제공된 답변의 일부입니다. 이것은 전체 인용 경로와 같은 방법으로 초기 답변입니다. 9 월 6 일 15 by @benez
— sophievda

18

Windows의 CygWin 에서이 문제가 발생했습니다. 나는 자바 (Cygwin에서 경로를 이해하지 못하는 것을 다른 곳에서 읽은 /cygdrive/c/some/dir대신을 C:\some\dir) - 내가 대신 상대 경로를 사용하므로 : ../../some/dir/sbt-launch.jar.


CygWin 에서이 정확한 문제가 발생했습니다! 영원히 감사합니다!
— Rhyuk

1
cygwin 경로 대신 Windows 형식의 경로를 사용하기 위해 cygwin이 필요한 경우 cygpath -w / path / here 명령을 사용하여 경로를 Windows와 동등한 경로로 변환 할 수 있습니다.
— Jason Slobotski

@JasonSlobotski 팁 주셔서 감사합니다. 귀하의 의견은 독자적으로 답변해야한다고 생각합니다.
— Roberto Bonvallet

14

jar 파일을 시작하려고 할 때 동일한 문제가 발생했습니다. 경로에는 공백이 포함되어 있으므로 인용 부호를 붙여야했습니다. 대신에:

java -jar C:\Path to File\myJar.jar

나는 써야했다

java -jar "C:\Path to File\myJar.jar"

나는 또한 사이에 공백이 있기 때문에 인용문은 나를 위해 속임수를 사용했습니다. 그런 다음 경로에 공백없이 따옴표없이 시도한 다음 작동했습니다.
— Timothy

Anno 2019 :이 솔루션은 따옴표로 도움이되었습니다! 따옴표와 공백이 없으면 제 경우에는 작동하지 않습니다.
— sophievda

11

나쁜 USB를 만들려고하는 것과 같은 문제가 발생했습니다 ...

admin cmd 에서이 명령을 실행하려고했습니다.

java -jar c:\fw\ducky\duckencode.jar -I c:\fw\ducky\HelloWorld.txt  -o c:\fw\ducky\inject.bin

그러나이 오류가 발생했습니다 :

Error: unable to access jarfile c:\fw\ducky\duckencode.jar

해결책

1 단계

해당 jarfile을 마우스 오른쪽 단추로 클릭하십시오. 속성을 클릭하십시오. 오른쪽 하단에서 차단 해제 탭을 클릭하십시오. 파일이 PC에 다운로드되어 생성되지 않아 차단되었습니다.

2 단계

cmd에서 jar 파일이있는 디렉토리로 변경했습니다.

cd C:\fw\ducky\

그런 다음 입력 dir하고 파일의 이름을 봤습니다.duckencode.jar.jar

그래서 cmd에서 파일을 참조하도록 원래 명령을 변경했습니다. .jar.jar

java -jar c:\fw\ducky\duckencode.jar.jar -I c:\fw\ducky\HelloWorld.txt  -o c:\fw\ducky\inject.bin

해당 명령은 오류 메시지없이 실행되었으며 작성하려고하는 inject.bin이 이제 디렉토리에 있습니다.

도움이 되었기를 바랍니다.


감사합니다, 내 이름도 apktool.jar.jar
— Mayank Kumar

8

비슷한 문제가 있었고 관리자 권한으로 CMD를 실행하려고했지만 문제를 해결하지 못했습니다.

기본적인 것은 cmd 의 디렉토리 를 jar 파일이있는 현재 디렉토리 로 변경해야한다는 것 입니다.

다음 단계를 수행하십시오.

1. jar 파일을 데스크탑에 복사하십시오.

  1. CMD 실행

  2. 유형 명령 cd desktp

  3. 그런 다음 입력 java -jar filename.jar

이 작동합니다.


편집 : JDK-11부터 ( JEP 330 : 단일 파일 소스 코드 프로그램 시작)

Java 11부터 java 명령 행 도구는 단일 파일 소스 코드를 직접 실행할 수있었습니다. 예 :

java filename.java


5

OSX를 사용하는 경우 다운로드 된 파일에는 서명되지 않은 응용 프로그램이 실행되지 못하게하는 보안 플래그가 표시됩니다.

이를 확인하기 위해 파일에서 확장 속성을 볼 수 있습니다

$ ls -l@
-rw-r--r--@ 1 dave  staff  17663235 13 Oct 11:08 server-0.28.2-java8.jar
com.apple.metadata:kMDItemWhereFroms         619
com.apple.quarantine          68

그런 다음 속성을 지울 수 있습니다.

xattr -c file.jar


3

매개 변수 목록을 제대로 제공하지 않으면 발생할 수 있습니다. 내가하고있는 일은 다음과 같습니다.

java -jar test@gmail.com testing_subject file.txt test_send_emails.jar

올바른 버전 대신 :

java -jar test_send_emails.jar test@gmail.com testing_subject file.txt

3

때로는 안드로이드 스튜디오에서 / libs 폴더 아래에있는 .jar 파일을 마우스 오른쪽 버튼으로 클릭하여 (실행 또는 생성)하려고 할 때 발생합니다. Android stuio 상단의 드롭 다운을 선택하고 app로 변경할 수 있습니다 . 이 작동합니다

여기에 이미지 설명을 입력하십시오


2

나를 위해 PATH에있는 폴더 이름에 기본 폴란드어 문자를 사용하면 발생합니다. 따라서 일반적인 문자를 사용하는 것이 문제의 원인 일 수 있습니다.


2

심볼릭 링크 (바로 가기)와 관련된 디렉토리로 작업했기 때문에 내 특정 문제가 발생했습니다. 결과적으로, java -jar ../../myJar.jar내가 생각했던 곳에 있지 않았기 때문에 시도 가 작동하지 않았습니다.

상대 파일 경로를 무시하면 바로 수정되었습니다.


2

필자의 경우 사용할 파일 이름 jarFile*.jar은 명령 줄에있었습니다. 폴더의 파일은 jarFile-1.2.3.jar입니다. 그래서 파일 이름을로 바꿨습니다 jarFile. 그런 다음 jarFile.jar대신 사용 jarFile*.jar하고 문제가 해결되었습니다.


이 작업을 수행 한 후 jar 파일에 액세스 할 수없는 문제가 해결되었습니다.
— 개발

2

폴더 이름에 공백이 있으면 Windows 시스템에서 발생할 수 있습니다. 해결책은 ""사이의 경로를 입력하는 것입니다. 예를 들면 다음과 같습니다.

java -jar c:\my folder\x.jar    --> 
java -jar "c:\my folder\x.jar"

2
이것은 질문에 대한 답변이 아니며 추가 정보를 요청하려면 의견을 사용해야합니다.
— awd

2

권한 문제를 피하려면 관리자 권한으로 실행하십시오. 이것은 Win10에서 나를 위해 일했습니다.


맥은 어때?
— GvSharma

2

이 스레드가 몇 년 전이고 문제가 해결되었다는 것을 알고 있습니다. 그러나 설치 프로그램이있는 Oracle WebLogic 12c 및 Oracle OFR을 설치하려고 시도하면서 비슷한 문제가 발생했기 때문에 앞으로 다른 사람에게 도움이되기를 바랍니다..jar 형식 인 . 필자의 경우 JDK 디렉토리를 따옴표로 묶지 않았거나 오타가있었습니다.

실행 Command Prompt관리자 권한으로이 형식으로 명령을 실행합니다. 오타가 있으면 문장을 다시 확인하십시오.

"C:\Program Files\Java\jdk1.xxxxx\bin\java" -jar C:\Users\xxx\Downloads\xxx.jar

와 같은 것이 표시되면 환경 변수 JRE 1.xxx is not a valid JDK Java Home의 시스템 변수 JAVA_HOME가 올바른 JDK 디렉토리를 가리키는 지 확인하십시오 . JDK 1.8 이상이 권장됩니다 (2018).

여기에 유용한 스레드가 있습니다 . Weblogic 서버를 설치하는 동안 JDK c : program files \ java \ jre7을 표시하는 이유가 올바른 JDK가 아닌 이유는 무엇입니까?


1

TextMate 또는 무언가가 큰 따옴표를 유니 코드 큰 따옴표로 대체하는 비슷한 문제가있었습니다.

SELENIUM_SERVER_JAR유니 코드 큰 따옴표에서 일반 큰 따옴표로 변경하면 문제가 해결되었습니다.


1

잘못된 경로에서 파일을 찾고 있기 때문입니다. 1. 파일을 저장 한 폴더의 경로를 찾으십시오. 2. cmd에서 디렉토리 cd를 변경하십시오. 올바른 경로를 사용하십시오.


1

NetBeans를 사용하고 동일한 문제가 발생했습니다. 빌드 및 정리 프로젝트를 실행 한 후 내 프로그램은 실행 가능했습니다. Java 문서에 따르면 build / clean 명령은 기본적으로 프로젝트를 처음부터 다시 작성하고 과거의 컴파일을 제거하는 것입니다. 이게 도움이 되길 바란다. 또한 설명서를 읽었습니다. Oracle에는 NetBeans 및 Java 학습 내역이 있습니다. 매우 도움이됩니다. 행운을 빕니다!


1

항아리의 잘못된 버전을 지정했을 수 있습니다.


1

마지막으로 jar 파일을 JDK와 동일한 폴더에 붙여 넣었으므로 경로를 포함 할 필요가 없었습니다. 또한 관리자 권한으로 명령 프롬프트를 열어야했습니다.

  1. 명령 프롬프트를 마우스 오른쪽 단추로 클릭하고 "관리자 권한으로 실행"
  2. jdk를 저장 한 디렉토리로 이동하십시오.
  3. 명령 프롬프트에서 다음을 입력하십시오. java.exe -jar <jar file name>.jar


0

관리자 privoleges에서 실행하려고 했습니까? "Run As"에서 명령을 실행 한 다음 적절한 관리자 자격 증명을 가진 관리자를 선택하십시오.

나를 위해 일했다


0

나는 이것을 시도하고 있었다 :

파일을 읽고, 쓰고, 권한을 부여한 후 :

chmod 777 java-repl.jar

alias jr="java -jar $HOME/Dev/java-repl/java-repl.jar"

bla bla에 액세스 할 수 없습니다 ... Mac OS에서는

그래서 나는 이것을 시도했다 :

alias jr="cd $HOME/Dev/java-repl/ && java -jar java-repl.jar"


0

"jarfile에 액세스 할 수 없습니다"작동하지 않았습니다.

"C:\Program Files\java\jdk-13+33-jre\bin\javaw.exe" -jar "C:\Program Files\Maxim Integrated Products\1-Wire Drivers x64\ OneWireViewer.jar"

이 작동합니다

"C:\Program Files\java\jdk-13+33-jre\bin\javaw.exe" -jar "C:\Program Files\Maxim Integrated Products\1-Wire Drivers x64\OneWireViewer.jar"

차이점은 OneWireViewer.jar 앞의 단일 공백은 따옴표로 묶여 있고 다른 공백도 있음을 견딜 수 없다는 것입니다.


0

나에게 그것은이 항아리를 만드는 데 사용되는 컴파일 된 Java 버전 (8)이 아닌 기본 Java 버전 (7)으로 실행하기 때문에 발생합니다.

그래서 나는 사용했다 :

%Java8_64%\bin\java -jar myjar.jar

Java 7 버전 대신 :

java -jar myjar.jar

0

WSL을 사용하고 있고 가이드를 따르면 다음과 같이 말합니다.

java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb

실제로는 전체 경로를 지정해야하지만 java.library.path부분 에서 제공 한 경우에도 마찬가지 입니다.

java -Djava.library.path=/mnt/c/dynamodb_local/DynamoDBLocal_lib -jar /mnt/c/dynamodb_local/DynamoDBLocal.jar -sharedDb

-1

먼저 변수를 만들었습니다 %JAVA_HOME% :

파일을 다운로드 할 때 UNBLOCK TAB위의 "maartencls"post에 표시된대로 파일 특성 을 체크인하십시오 .

c:\users\my user\downloads\location of the file\all> java -jar yourfilename.jar

이것이 문제를 해결하기를 바랍니다 :)


-1

첫 실행 : java -version

그런 다음 다음을 실행하십시오. java -jar Calculator.jar

이것은 나를 위해 일했습니다.


왜 java -version필요한지 잘 모르겠 습니까? 또한 운영 java -jar Calculator.jar은 OP가 수행 한 것과 작동하지 않은 것입니다 ....
— ArielGro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.