Windows XP에 JDK8 설치-advapi32.dll 오류
JDK8 빌드 b121을 다운로드 했는데 설치를 시도하는 동안 다음 오류가 발생합니다.
the procedure entry point RegDeleteKeyExA could not be located in the dynamic link library ADVAPI32.dll
운영 체제는 Windows XP, 버전 2002 서비스 팩 3, 32 비트입니다.
이는 http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-July/에 설명 된대로 Oracle이 Windows XP ( RegDeleteKeyExA
설치 프로그램에서 사용 하지 않은)에 대한 지원을 중단했기 때문에 발생합니다 . 009005.html . 그러나 XP에 대한 공식 지원이 종료되었지만 Java 바이너리는 여전히 (적어도 Java 8u20 EA b05 기준) XP와 호환됩니다. 설치 프로그램 만 지원하지 않습니다.ADVAPI32.DLL
그 때문에 솔루션은 실제로 매우 쉽습니다.
7-Zip (또는 다른 좋은 압축 해제 프로그램)을 얻고 배포 .exe의 압축을 수동으로 풀고 내부에 하나의 .zip 파일이 있습니다 (
tools.zip
), 압축을 풉니 다.unpack200
JDK8에서 사용 하여 모든 .pack 파일을 .jar 파일로 압축 해제합니다 (이전 압축 해제는 제대로 작동하지 않습니다).JAVA_HOME
환경 변수는 "C : \ Program Files \ Java \ jdk8"과 같이 Java unpack 루트로 설정되어야합니다. 예를 들어 암시 적으로 지정할 수 있습니다.SET JAVA_HOME=C:\Program Files\Java\jdk8
단일 명령으로 모든 파일의 압축을 풉니 다 (배치 파일) :
FOR /R %%f IN (*.pack) DO "%JAVA_HOME%\bin\unpack200.exe" -r -v "%%f" "%%~pf%%~nf.jar"
단일 명령으로 모든 파일의 압축을 풉니 다 (JRE 루트의 명령 줄) :
FOR /R %f IN (*.pack) DO "bin\unpack200.exe" -r -v "%f" "%~pf%~nf.jar"
수동으로 파일을 찾고 하나씩 압축을 풀어 압축을 풉니 다.
%JAVA_HOME%\bin\unpack200 -r packname.pack packname.jar
packname
예를 들어 어디에 있습니까rt
사용하려는 도구 (예 : Netbeans)를 가리키면
%JAVA_HOME%
좋습니다.
참고 : 웹 브라우저에서 Java 8을 사용하거나 유사한 이유로 (JRE 8 설치가 떠오르는 경우)이 작업을 수행해서는 안됩니다. 주요 Java 버전 릴리스의 초기 업데이트에서 보안 결함은 전설적 이며 XP에서 XP 나 Java 8을 실제로 지원하지 않는 것은 문제를 더욱 악화시킬뿐입니다. 일반적으로 브라우저에서 Java가 필요 하지 않습니다 (예 : http://nakedsecurity.sophos.com/2013/01/15/disable-java-browsers-homeland-security/ 참조 -이 주제는 이미 많은 페이지, 추가 정보가 필요한 경우 Google로 이동). 어떤 경우에는, AFAIK 유일한 것은 JRE이 절차는 경로의 일부에서 위의 지정된 변경하는 신청을해야 \bin\
하는\lib\
(설치 디렉토리 트리에서 파일 배치는 조금 다른입니다) - 아직 난 강력하게 그 일에 대해 조언한다.
참고 항목 : EXE 또는 MSI 설치 프로그램이 아닌 zip 파일로 최신 JRE / JDK를 얻으려면 어떻게해야합니까? , JRE 1.7-Java 버전-반환 : java / lang / NoClassDefFoundError : java / lang / Object
16 진 편집기 (예 : XVI32)를 사용하는 것을 두려워하지 않는 사람들을위한 대체 솔루션도 있습니다. [ Trevor 덕분에 ] : 압축을 푼 1 개의 설치 프로그램 실행 파일 ( jdk-8uXX-windows-i586.exe
JDK의 경우)에서 RegDeleteKeyExA
(이름의 (레거시 API 이름 ADVAPI32.DLL
)과 함께 "new"에서 찾은 API 와 RegDeleteKeyA
그 뒤에 두 개의 16 진수 '00 (패딩 / 세그먼트 경계를 유지하기 위해)이옵니다. 설치 프로그램은 지원되지 않는 Windows 버전에 대해 불평하지만 그럼에도 불구하고 작동합니다.
참고로 원시 16 진 문자열은 다음과 같습니다.
52 65 67 44 65 6C 65 74 65 4B 65 79 45 78 41
대체
52 65 67 44 65 6C 65 74 65 4B 65 79 41 00 00
참고 :이 절차는 오프라인 (독립 실행 형) 및 온라인 (다운로더) 패키지 모두에 적용됩니다.
1 : 일부 최신 설치 프로그램 버전에는 UPX 가 포함되어 있습니다. 먼저 압축을 풀어야합니다. 그렇지 않으면 필요한 16 진수 문자열을 찾을 수 없습니다.
오라클은 Windows XP 설치 오류 수정을 발표했습니다.
Oracle은 Windows XP 설치를 수정하기로 결정했습니다. 2014 년 10 월 15 일의 JRE 8u25 릴리스부터 설치 프로그램의 코드가 변경되어 Windows XP에 다시 설치할 수 있습니다.
그러나 이것이 오라클이 Windows XP를 계속 지원한다는 의미는 아닙니다. JRE8의 현재 및 향후 릴리스가 Windows XP와 호환된다는 보장을하지 않습니다. 그것은 당신 자신의 위험에 처한 것 같습니다.
여기 에서 Oracle 블로그 게시물을 참조 하십시오.
Oracle 다운로드 사이트 에서 최신 JRE8을 바로 다운로드 할 수 있습니다.
XP의 JRE 8에는 MSI를 사용하여 패키지를 배포하는 또 다른 방법이 있습니다.
- 지원되는 OS가있는 PC에 JRE 8 x86 설치
- c : \ Users [USER] \ AppData \ LocalLow \ Sun \ Java \ jre1.8.0 \ jre1.8.0.msi 및 Data1.cab을 XP PC에 복사하고 jre1.8.0.msi를 실행 합니다.
또는 (자동, 배치 파일 등에서 사용 가능)
for %%I in ("*.msi") do if exist "%%I" msiexec.exe /i %%I /qn EULA=0 SKIPLICENSE=1 PROG=0 ENDDIALOG=0
참고 URL : https://stackoverflow.com/questions/20965564/installing-jdk8-on-windows-xp-advapi32-dll-error
'IT Share you' 카테고리의 다른 글
PowerMock으로 void를 반환하는 정적 메서드를 어떻게 모의합니까? (0) | 2020.12.07 |
---|---|
Youtube 비디오를 부트 스트랩 3.0 페이지에 올바르게 포함 (0) | 2020.12.07 |
Angular JS에서 Bootstrapping은 무엇을 의미합니까? (0) | 2020.12.07 |
흥미로운 인터뷰 운동 결과 : 리턴, 포스트 증가 및 참조 동작 (0) | 2020.12.07 |
Python Django Rest Framework 순서가 지정되지 않은 ObjectListWarning (0) | 2020.12.07 |