JRE 1.7-Java 버전-리턴 : java / lang / NoClassDefFoundError : java / lang / Object Java 응용 프로그램을

Java 응용 프로그램을 실행하거나 ‘java’만 실행하면 jvm이 실패합니다.

VM
java / lang / NoClassDefFoundError 초기화 중에 오류가 발생했습니다 . java / lang / Object

다음은 오답 목록입니다 .

  1. / bin 디렉토리를 포함한 올바른 Java 홈 디렉토리가 글로벌 PATH에 있습니다.

  2. JAVA_HOME이 올바르게 설정되었습니다

  3. java -fullversion 작동 명령 실행

    $ java -fullversion
    
    ./java full version "1.7.0_05-b05"
    
  4. / usr / java의 기호 링크는 모두 올바른 Java 설치를 가리 킵니다.

  5. 시스템을 만들 때 ‘기본’java를 설치하지 않았습니다.

  6. java -version 실패 … 위와 같은 오류

  7. Java 설치의 디렉토리 구조에서 명령을 실행해도 작동하지 않습니다

  8. 이것은 64 비트 용 64 비트 Java입니다.

어떤 아이디어?



답변

이 문제는 부적절한 Java 설치로 인해 발생합니다.

가능성 1

참고 : 이 시나리오는 Java 8 및 이전 버전에만 적용됩니다. Java 9부터 JRE는 다르게 구성됩니다. rt.jar 및 친구는 더 이상 존재하지 않으며 Pack200은 더 이상 사용되지 않습니다.

자바 표준 라이브러리는 같은 다양한 JAR 파일에 포함되어 rt.jar, deploy.jar, jsse.jar, 등 JRE가 포장되면, 이러한 중요한 JAR 파일로 압축 Pack200의 및 저장 rt.pack, deploy.pack, jsse.pack, 등 자바 설치는 압축을 그들에게 가정된다. 이 오류가 발생하면 분명히 발생하지 않았습니다.

JRE 및 폴더 의 unpack200모든 .pack파일에서 수동으로 실행해야합니다 .lib/lib/ext/

윈도우

하나의 .pack파일 을 풀려면 (예 🙂 rt.pack다음을 실행하십시오.

"%JAVA_HOME%\bin\unpack200" -r -v rt.pack rt.jar

.packJRE 루트 실행에서 모든 파일 을 재귀 적으로 압축 해제하려면 다음을 수행하십시오.

for /r %f in (*.pack) do "%JAVA_HOME%\bin\unpack200.exe" -r -q "%f" "%~pf%~nf.jar"

*아니야

하나의 .pack파일 을 풀려면 (예 🙂 rt.pack다음을 실행하십시오.

/usr/bin/unpack200 -r -v rt.pack rt.jar

.packJRE 루트 실행에서 모든 파일 을 재귀 적으로 압축 해제하려면 다음을 수행하십시오.

find -iname "*.pack" -exec sh -c "/usr/bin/unpack200 -r -q {} \$(echo {} | sed 's/\(.*\.\)pack/\1jar/')" \;

가능성 2

다른 방법으로 Java를 잘못 설치했습니다. 아마도 관리자 권한없이 설치했거나 설치 프로그램에서 파일을 추출하기 만했습니다. 설치 프로그램 및 / 또는 더 많은 권한으로 다시 시도하십시오. 또는 설치 프로그램을 사용하지 않으려면 .tar.gz대신 Java 패키지를 사용하십시오.


답변

* nix OS의 Java 8의 경우 <jdk root>/jre/lib(나를 위해 /usr/java/jdk1.8.0_05/jre/lib)로 이동하십시오. 이 디렉토리에서 다음을 실행하십시오.

../../bin/unpack200 rt.pack rt.jar
../../bin/unpack200 jsse.pack jsse.rar
../../bin/unpack200 charsets.pack charsets.jar

경우 버전 문제를 방지하기 위해 동일한를 사용, 다른 JRE가 설치되어 unpack200당신이 고정되어있는 JRE와 함께 제공 – 명령 행 사용에서입니다 ../../bin/unpack200(나를 위해,이 팽창 /usr/java/jdk1.8.0_05/bin/unpack200)이 아니라 unpack200.


답변

64 비트 아키텍처의 경우 32 비트 버전과 64 비트 버전의 jre를 모두 설치해야합니다 (rt.jar과 같은 아키텍처 독립 파일은 32 비트 버전으로 만 배포 됨).

글로벌 PATH 환경 변수에 올바른 Java 실행 파일을 포함 시키려면주의해야합니다.


답변

참을성이없는 사람들을위한 빠른 솔루션 😉 Windows 컴퓨터에서 다음을 시도하십시오. C:\Windows\System32디렉토리로 이동하여 삭제하십시오 java.exe(또는 이름을 바꾸십시오 java.exe.old).

1.6 이상이므로 java.exeWindows 디렉토리에 가 없어야합니다 . 있다면 남은 것입니다.

조금 더 읽기 :

2012 년의 질문에 아직 승인 된 답변이 없으며 2015 년 Win 7 32 비트 OS에서 동일한 문제가 발생했습니다.

그래서 어떻게 되었습니까?

기본적으로 모든 것이 잘 작동하고 H2 데이터베이스를 다운로드했으며 시작하려고 할 때 다음 H2 Console (Command Line)을 얻었습니다.

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

나는이 질문을 발견했고 같은 증상을 확인할 수있었습니다.

JAVA_HOME이 올바르게 설정되었습니다.

echo %JAVA_HOME%
C:\Program Files\Java\jdk1.6.0_26

java -version실패하지만 java --fullversion잘 작동합니다.

java -fullversion
java full version "1.6.0_45-b06"

해결책 :C:\Windows\System32 디렉토리로
이동하여 (실제로 이름을 바꾼) java.exe파일을 삭제 하십시오 !!!!

이제, 나는 얻는다 :

java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing)

그리고 H2 Console (Command Line)뿐만 아니라 잘 작동합니다!

크레딧은이 포럼의 마지막 게시물로 이동합니다 :
https://bukkit.org/threads/java-lang-noclassdeffounderror-java-lang-object.70450/


답변

오늘 새 JDK (1.8.0.73)를 다운로드 c:> java.exe하여 악명 높은 것을 얻었습니다.

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

방금 작업 솔루션을 여기에 공유하고 싶었습니다.

jdk\bin폴더에 CD를 넣으면 Java가 제대로 실행 되어 폴더임을 알았습니다 PATH. 나는 그것을 증명하기 위해 CMD PATH에 방금 설정 \jdk\bin했으며 효과가있었습니다.

그래서,에있는 폴더 중 하나가 PATH있었음에 틀림 java.exe충돌을 일으키는였습니다, 나는 생각했다. 알고 보니, 그것은이었다 C:\>ProgramData\Oracle\Java\javapath그 보유 심볼릭 링크 실행 파일에 있습니다.

java.exe을 가리키고있었습니다 jre\bin. 내가 시작할 때 파일이 손상되었습니다 \jre\bin\java.exe. 정확히 같은 오류입니다. 빙고. JRE를 다시 설치했는데 문제가 해결되었습니다. 행복한 코딩 …


답변

java.lang.Object에 대한 클래스 파일이있는 설치에서 rt.jar이라는 파일이 누락되었을 수 있습니다. 설치 파일 등을 확인하십시오.

특히 64 비트 intaller는 기존 32 비트 설치를 오버레이 (또는 “다음”설치)합니다. 다시 말해서, 완전히 작동하는 64 비트 설치를하려면 먼저 32 비트 설치를 실행하고 64 비트 가능 시스템이있는 경우 64 비트 설치를 수행해야합니다.

대신 64 비트 설치를 수행하는 경우 설치에 특정 파일이 누락되고 위와 같은 오류가 발생합니다.


답변

Windows 10에서 JRE 1.8 (8u121)과 동일한 문제에 직면했습니다.
타자

java -version

cmd 프롬프트는 다음을 반환합니다.

Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

다른 모든 명령은, echo %JAVA_HOME%, echo %JRE_HOME%, echo %PATH%, java -fullversion벌금을했다.

시스템 관리 패널의 환경 변수로 이동하여 PATH에서 링크를 제거하고 PATH에 링크 C:\ProgramData\Oracle\Java\javapath를 설정했는지 확인하십시오 C:\Program Files\Java Folder\bin.

그 후, 파일 C:\Windows\System32이 존재 하는지 확인 java.exe하십시오. true 인 경우 해당 파일을 삭제하십시오.

입력 java -version하면 정상적으로 작동합니다.