"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.