Ich habe ein Java-Applet, das unter 32-Bit JDK (1.5) entwickelt wurde. Wenn ich es auf einem neuen MacOS (10.7) einsetze, läuft es nicht richtig - weil 64-bit JRE in diesem System standardmäßig bevorzugt wird (es gibt zwei zur Auswahl, 32 und 64 bit). Wenn die bevorzugte Reihenfolge zuerst auf 32-Bit geändert wird, ist alles in Ordnung - aber das ist keine Lösung, weil das Ändern der Einstellungen auf einem Client-Rechner unpraktisch ist. Für ein eigenständiges Anwendungsbündel könnte es mit den richtigen Einstellungen in der info.plist behoben werden, indem einfach die Anwendungsarchitektur angegeben wird.
Also, gibt es eine Möglichkeit, eine gleiche Sache zu machen, wenn Applet starten - i386-Architektur angeben, Browser zu erzwingen, 32-Bit-JRE ausführen, JVM erzwingen, in 32-Bit zu arbeiten, oder etwas?
Im Moment habe ich nur gefunden, wie man die JRE-Version/Familie für das Applet angibt, aber das hilft nicht. Ich versuche, ein Applet mit dem Code zu starten wie:
<object
classid="clsid:CAFEEFAC-0015-0000-FFFF-ABCDEFFEDCBA"
width="740" height="400"
codetype = "application/x-java-applet;version=1.5"
>
<param name="code" value = "ca/lcsi/Program/App/LogoFrameApplet.class">
<param name="archive" value="webplayer.jar">
<param name="project" value="testpath.tsfp">
<param name="lang" value="en">
<embed
type="application/x-java-applet;version=1.5"
code="ca/lcsi/Program/App/LogoFrameApplet.class"
archive = "webplayer.jar"
project = "testpath.tsfp"
lang = "en"
width="740" height="400"
>
</object>
Ich würde die Vorschläge begrüßen!
0 Stimmen
2 Fragen: Warum läuft es nicht richtig und warum denken Sie, dass es mit der JRE zu tun hat?
1 Stimmen
1) Warum? Das weiß ich nicht. Soweit ich weiß, verwendet das Programm keine nativen Bibliotheken. 2) Wie gesagt, wenn ich eine andere (32-Bit) JRE auf einem Client-Rechner als bevorzugt wähle, funktioniert es gut.
0 Stimmen
Könnten Sie einige Details zu dem Fehler angeben, damit wir Ihnen helfen können?
0 Stimmen
Es läuft normal, nur mit einem Fehler. Tut mir leid, ich glaube nicht, dass ich diesen Weg gehen würde - ich brauche kein funktionierendes 64-Bit-Applet, zumindest im Moment, also ist es billiger, es als 32-Bit laufen zu lassen, als zu versuchen, einen Fehler zu beheben (nur einer entdeckt, es könnte mehr sein). Was ich brauche, ist ein Schlüssel oder eine Eigenschaft an ein startendes Applet zu übergeben, um es in 32-Bit-JRE zu starten.
0 Stimmen
Bitte definieren Sie "einen Fehler". Wenn Sie nicht JNI verwenden, sollten die Klassen portabel sein und wie erwartet funktionieren. Es gibt keinen x64 Bytecode oder x32 Bytecode. WORE etc.
0 Stimmen
Ich weiß, es sollte tragbar sein. Dennoch, obwohl es nicht die JNI verwendet, kann ich nicht sicher sein, dass es keine nativen Implementierungen enthält, weil das Projekt nicht von mir gestartet wurde. Deshalb möchte ich nicht in Code zu graben und es zu debuggen, aber wollen eine Problemlösung zu bekommen.
1 Stimmen
Wenn Sie darauf bestehen, liegt der Fehler darin, dass beim zweimaligen Starten des internen Prozesses (von zwei Steuerelementen aus) dieser nicht mehr reagiert, anstatt die vorherige Instanz zu beenden und die neue zu starten.