Laufen eine 32-Bit-Version von Java? [Duplikat]

0

Ich habe kürzlich versucht, eine Bibliothek zu verwenden, die eine 32-Bit-Version von Java benötigt. Ich habe versucht, meine Java-Version dazu zu bringen, die 32-Bit-Version zu verwenden, indem ich das Flag -d32 verwende. Ich habe jedoch den Fehler erhalten:

Fehler: Diese Java-Instanz unterstützt keine 32-Bit-JVM. Bitte installieren Sie die gewünschte Version.

Ich habe versucht, herauszufinden, wie die 32-Bit-Version von Java für OS X heruntergeladen werden kann, aber mit wenig Erfolg. Jede Hilfe wäre willkommen. Kann man OpenJDE auch ohne offiziellen Download in 32-Bit-Form nutzen?

user3630263
quelle

Antworten:

0

Zu meiner (begrenzten) Wissen, OS X nicht mehr mit 32-Bit nur Versionen von Java von Oracle, als die letzte Version von OS X 32 - Bit - Maschinen 10.6 war zu unterstützen. Vor diesem Hintergrund scheint die letzte Apple-Distribution von Java den 32-Bit-Modus zu unterstützen, sofern Sie ihn aktivieren. Trotzdem ist es anscheinend immer noch nicht so glücklich über das Laufen. Laut diesem Beitrag können Sie jedoch das Bearbeiten einiger Binärdateien erzwingen.

Der Schlüssel ist, /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java durch einen 32-Bit-Modus nur für Binärdateien zu ersetzen.

  1. Verwenden Sie "xxd -g1 java | grep -E 'c. Fa'", um den binären Header herauszufinden.
xxd -g1 java | grep -E 'c. Fa'
0001000: ce fa ed fe 07 00 00 00 03 00 00 02 00 00 00
000c4b0: 01 28 6f d8 ce 3b 3a b0 c9 cd fa 87 b1 35 df 08
000d000: siehe zB 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 ist die 32-Bit-Version. 1

Die 32-Bit-Binärdatei beginnt also bei 0x1000 und endet bei 0xd000 mit einer Länge von 0xc000.

  1. Extrahieren Sie die 32-Bit-Binärdatei mit Ihren Lieblingstools .... (z. B. dd). Ich mag xxd, da die Syntax leichter zu merken ist. Überprüfen Sie dies mit "file java".

  2. Sichern Sie die ursprüngliche Java-Binärdatei.

  3. Ersetzen Sie die Binärdatei "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java" durch die extrahierte 32-Bit-Binärdatei "only" in Schritt 2.

  4. Prüfung! Wenn die Java-Konsole nicht angezeigt wird und keine Java-Voreinstellung zum Aktivieren vorhanden ist, können Sie die Datei deployment.properties unter ~ / Library / Caches / Java verwenden und "deployment.console.startup.mode = SHOW" hinzufügen.

Trotzdem sind die Java-Interna nicht so gut, und es ist durchaus möglich, dass sich dies basierend auf der von Ihnen verwendeten JVM ändert.

JMY1000
quelle