Um Java CDC Anwendungen zu entwickeln braucht man eine entsprechende virtuelle Machine. Eine OpenSource VM wird im phoneME Projekt entwickelt. Es gibt dort verschiedenste Versionen für Linux, Windows, Windows Mobile und auch für Darwin/OS X. Allerdings ist bisher nur ein PowerPC Variante für OS X verfügbar. Die lässt sich auch auf einem Intel Mac benutzen, allerdings nur im Foundation-Profile, dass keine UI bereitstellt. Um AWT zu haben benötigt man das Personal-Profile, was jedoch QT verlangt. Und mit Fink kann man von QT keine Universal Binarys installieren.
Deshalb habe ich versucht die PowerPC Version von phoneME Advanced nach x86 zu portieren. Dazu war nicht sonderlich viel nötig. Ich habe lediglich einige Dateien durch die entsprechenden Linux x86 Versionen ersetzt.
I wanted to develop my J2ME CDC Applicatins on my Intel Mac. Unfortunalty there is no CDC VM available for Intel Macs. The phoneME project provides sources for a PowerPC version for Darwin/OS X. So I decided to port that over to Intel by replacing some files with the correct Linux x86 ones.
Hier ist nun das Ergebnis:
Here is my result:
Patch: phoneme-cdc-darwin-x86
Binary: phoneme-cdc-personal-darwin-x86-qt3-x11-bin
Die Dateien aus dem Patch-Archiv müssen in die entsprechenden Ordner der phoneME Sourcen kopiert werden. Dann kann im Verzeichnis cdc/build/darwin-x86-mac “make” aufgerufen werden um das Foundation Profil zu bauen und mit “make J2ME_CLASSLIB=personal” kann das Personal-Profil erzeugt werden. Dafür benötigt man QT3, das am einfachsten mit Fink installiert wird.
Die entstandene VM lässt sich am einfachsten mit “bin/cvm -jar democlasses.jar” testen.
Copy the files from the Patch-Archive into the correct folders of the phoneME sources. You can build the Foundation-Profile with “make”in the directory cdc/build/darwin-x86-mac and with “make J2ME_CLASSLIB=personal” the Personal-Profile. You need QT3 for the Personal-Profile. Install that with Fink.
You can try out the resulting VM with “bin/cvm -jar democlasses.jar”.
7 replies on “phoneME Advanced on OSX Intel”
Habs ausprobiert und heraus kommt ein UnsatisfiedLinkError. In der Meldung steht der Pfad zu libqtawt.so. X11 (Apple) und qt3 (via fink) sind vorhanden. Irgendeine Idee, was da fehlt?
Hallo Sascha,
Benutzt du Tiger oder Leopard? Ich habs auf Leopard compiliert.
Kannst du mal den kompletten Stacktrace posten?
Nachtrag:
Folgende Libraries werden von cvm auf meinem Mac genutzt:
/Users/markus/Downloads/phoneme-cdc-personal-darwin-x86-qt3-x11-bin/bin/cvm
/usr/X11/lib/libXau.6.dylib
/Users/markus/Downloads/phoneme-cdc-personal-darwin-x86-qt3-x11-bin/lib/libqtawt.so
/usr/X11/lib/libGL.1.2.dylib
/usr/X11/lib/libXmu.6.dylib
/usr/X11/lib/libXrender.1.dylib
/usr/X11/lib/libXrandr.2.dylib
/usr/X11/lib/libXcursor.1.dylib
/usr/X11/lib/libXinerama.1.dylib
/usr/X11/lib/libXft.2.dylib
/sw/lib/freetype219/lib/libfreetype.6.3.10.dylib
/usr/X11/lib/libfontconfig.1.3.0.dylib
/usr/X11/lib/libXext.6.dylib
/usr/X11/lib/libX11.6.dylib
/usr/X11/lib/libSM.6.dylib
/usr/X11/lib/libICE.6.dylib
/usr/lib/libXplugin.1.dylib
/usr/X11/lib/libXdmcp.6.dylib
/usr/X11/lib/libXt.6.dylib
/usr/X11/lib/libXfixes.3.dylib
/usr/lib/libexpat.1.5.0.dylib
/sw/lib/qt3/lib/libqt-mt.3.3.8.dylib
/usr/X11/lib/libfreetype.6.3.16.dylib
/Users/markus/Downloads/phoneme-cdc-personal-darwin-x86-qt3-x11-bin/lib/libawtjpeg.so
/usr/lib/dyld
/Users/markus/Downloads/phoneme-cdc-personal-darwin-x86-qt3-x11-bin/lib/personal.jar
/Users/markus/Downloads/phoneme-cdc-personal-darwin-x86-qt3-x11-bin/democlasses.jar
Evtl. fehlt dir da was?
Hi auch. Bin ein Stück weiter gekommen. Ein Debug-Build fördert dann (unter anderem) folgende Meldung des Linkers zutage…
dlopen(/Users/sascha/Development/src/java/phoneme/phoneme_advanced-mr2-dev-b76/cdc/build/darwin-x86-mac/lib/libqtawt_g.so, 1): Library not loaded: /usr/X11/lib/libXrandr.2.dylib
Referenced from: /sw/lib/qt3/lib/libqt-mt.3.dylib
Reason: Incompatible library version: libqt-mt.3.dylib requires version 4.0.0 or later, but libXrandr.2.dylib provides version 3.0.0
Wie mir scheint ist meine X11 Installation zu alt. Woher kommt denn deine?
Ich habe meine von http://xquartz.macosforge.org/trac/wiki
Das ist eine etwas neuere als die, die Apple mitliefert. Daran könnte es natürlich liegen.
Läuft jetzt. Vielen Dank für die Hilfe.
Seit Snow Leopard 10.6.2 mußte ich in cdc/build/darwin-x86-mac/GNUmakefile -m32 zu diesen Einstellungen hinzufügen:
ASM_ARCH_FLAGS = -m32 -march=i686
CC_ARCH_FLAGS = -m32 -march=i686
LINK_ARCH_FLAGS = -m32