32 비트 버전의 Java를 실행 중입니까? [복제]


0

최근에 32 비트 버전의 Java가 필요한 라이브러리를 사용하려고했습니다. 플래그 -d32를 사용하여 내 Java 버전에서 32 비트 버전을 사용하려고했습니다. 그러나 오류가 발생했습니다.

오류 :이 Java 인스턴스는 32 비트 JVM을 지원하지 않습니다. 원하는 버전을 설치하십시오.

OS X 용 32 비트 버전의 Java를 다운로드하는 방법을 찾으려고 노력했지만 거의 성공하지 못했습니다. 어떤 도움이라도 환영합니다. 공식 다운로드 없이도 32 비트 형식으로 OpenJDE를 사용할 수 있습니까?

답변:


0

32 비트 머신을 지원하는 마지막 OS X 버전이 10.6 이었으므로 OS (제한된) 지식으로는 OS X가 더 이상 Oracle에서 32 비트 전용 Java 버전을 받지 않습니다 . 그렇게 말하면 Java의 마지막 Apple 배포판은 활성화하면 32 비트 모드를 지원하는 것으로 보입니다. 그 말에 따르면, 달리기는 항상 여전히 행복하지는 않습니다. 그러나이 게시물에 따르면 일부 바이너리를 편집하여 강제로 설정할 수 있습니다.

핵심은 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java를 32 비트 모드 전용 바이너리로 바꾸는 것입니다.

  1. 이진 헤더를 찾으려면 "xxd -g1 java | grep -E 'c. fa'"를 사용하십시오.
xxd -g1 java | grep -E 'c. 파'
0001000 : fe faeded fe 07 00 00 00 03 00 00 00 02 00 00 00
000c4b0 : 01 28 6f d8 ce 3b 3a b0 c9 cd fa 87 b1 35 df 08
000d000 : cf fa ed fe 07 00 00 01 03 00 00 80 02 00 00 00
000f060 : 00 0f 84 c7 fa ff ff 48 8d 3d 96 39 00 00 be 01

07 00 00 00은 32 비트입니다. 1

따라서 32 비트 이진은 0x1000에서 시작하여 0xc000의 길이로 0xd000에서 끝납니다.

  1. 내가 좋아하는 도구를 사용하여 32 비트 모드 바이너리를 추출하십시오. "file java"를 사용하여 확인하십시오.

  2. 원래 Java 바이너리를 백업하십시오.

  3. "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java"바이너리를 2 단계에서 추출 된 32 비트 모드 전용 바이너리로 바꾸십시오.

  4. 테스트! Java 콘솔이 표시되지 않고이를 켜는 Java 환경 설정이없는 경우 ~ / Library / Caches / Java에서 deployment.properties 파일을 사용하고 "deployment.console.startup.mode = SHOW"를 추가 할 수 있습니다.

그 말에 따르면, Java의 내부는 좋지 않으며 사용중인 JVM에 따라 변경 될 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.