Chi ha intenzione di sviluppare MIDlet per cellulari utilizzando il WTK 2.5.2 della Sun su una macchina a 64 bit, si troverà nella situazione di non poter avviare l’emulatore, poichè esso si rifiuterà di partire sostenendo che:
java.lang.UnsatisfiedLinkError: /home/user/netbeans-6.0/mobility8/WTK2.5.2/bin/sublime.so: /home/user/netbeans-6.0/mobility8/WTK2.5.2/bin/sublime.so: wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)
Insomma… problemi di compatibilità tra binari a 32 e a 64 bit!
Per risolvere il problema, cominciamo con lo scaricare una JDK a 32 bit;
poi andiamo nella directory dove abbiamo installato WTK (nel mio caso è quello compreso nell’installazione di NetBeans 6) e decomprimiamo il pacchetto:
$ cd ~/netbeans-6.0/mobility8/WTK2.5.2 $ sh /path/to/jdk-6u3-linux-i586.bin $ ln -s jdk1.6.0_03 jdk32
In seguito, dovremo editare lo script di avvio dell’emulatore WTK:
$ cd ~/netbeans-6.0/mobility8/WTK2.5.2 $ vim bin/emulator
(ovviamente potete utilizzare il vostro editor preferito al posto di vim)
e modificare la prima riga del codice in questo modo:
javapathtowtk=/home/user/netbeans-6.0/mobility8/WTK2.5.2/jdk32/bin/
Adesso potrete finalmente testare le vostre applicazioni J2ME sull’emulatore! :)














Ciao, innanzitutto complimenti per la soluzione.
Però non mi funziona, per caso mi sai aiutare perché non funziona?
Se mi dici almeno qual’è il problema, posso cercare di aiutarti. Fammi sapere il messaggio di errore, oppure il comportamento anomalo che hai riscontrato.
E grazie per la visita! :)
l’errore è sempre lo stesso, come se non usasse la jdk a 32 bit ma sempre quella a 64 bit, pensavo di rimuovere quella a 64 bit ma comunque non posso farne a meno…
la distribuzione è la ubuntu 7.10, con il jdk 1.6 della sun (installato dai reèpository) e il jwt 2.5.1 installato con l’auto estraente, la prova l’ho fatta con un esempio e “compilato” e lanciato dalla ktoolbar del jwt.
Grazie per l’aiuto e dimmi se vuoi che ti contatti in un altro modo.
Davide
Ho ripetuto l’installazione di Netbeans + WTK in diverse macchine e con diverse distribuzioni (Ubuntu, Kubuntu, Fedora) ed i passi che ho descritto nel post sono sempre stati sufficienti per far funzionare tutto… l’unica cosa che posso pensare è una diversa modalità di esecuzione.
Potresti provare a lanciare l’emulazione con il pulsante “Run” di NetBeans… mi pare di aver capito che invece esegui l’applicazione in un altro modo.
Ciao,
io provavo a compilare e lanciare gli esempi direttamente dal programma che c’è con il JWT, cmq adesso ho installato Netbeans 6.1 col mobility pack e il jwt e con la tua soluzione funziona, userò quello per le midlet.
Grazie ancora per l’aiuto
Davide
un aggiornamento ho risolto il problema reinstallando il jwt da solo e specificando il path per l’interprete.
Quindi consiglio:
1)installare il jdk a 32 bit
2) installare il jwt e specificare il path manualmente
funziona senza editare lo script dell’emulatore
Un saluto
Grazie mille per l’aggiornamento :) Sarà utile a molti visitatori!
si conviene seguire le istruzioni di DMolt
ma se avete installato prima la jwt e poi le jdk32 (come me!!) dovete modificare sia il file emulator che il file ktoolbar nella cartella bin delle jwt se volete fare build e run!!!!
ciao
Grazie per la guida, mi hai salvato!!! :P
grazie per la soluzione ;)