Iniciando Java para celulares!

install_pagina6.jpg“Lançada em 95, a tecnologia JAVA inovou o conceito de programação por ser uma linguagem gratuita e independente de plataforma.

Atualmente, uma de cada três pessoas utilizam alguma mercadoria com a tecnologia JAVA; Seja em celulares, palms, Pcs, impressoras, etc…” (Fonte www.sun.com.br)

Todos sabemos que com a tecnologia de dispositivos móveis em ascensão, celulares deixaram de ser celulares e viraram computadores de bolso.
Certa vez conversando com um amigo surgiu a frase: “Meu celular acessa a internet, meu MSN, abre arquivos do WORD, ZIPs e PDFs, roda jogos 3D, e as vezes faz e recebe chamadas.”

Por ser quase um computador, existe algumas linguagens para programação software para celulares.

Neste primeiro artigo eu demonstrarei como instalar a IDE de programação J2ME no linux, e citarei ao fim um pequeno código fonte, para aqueles que querem iniciar a programar nesta linguagem.

A muito tempo eu estava para escrever este artigo. Mas por alguma razão não o fazia.
Bom, aproveitei que neste fim de semana precisei re-instalar o linux na minha máquina, vou aproveitar para demonstrar passo a passo a instalação da IDE.

Como a maioria dos programadores deve saber, Java não é uma linguagem compilada, e sim interpretada. Utiliza uma máquina virtual, que é como uma interface entre o software e o sistema operacional, fazendo assim com que a linguagem possa rodar da mesma forma em vários sistemas operacionais.

Como estou desenvolvendo a algum tempo, posso dizer que o J2ME não é o java padrão, existem várias peculiaridades. Por isso, nem todo programa feito em j2me joda em uma máquina JAVA comum, e vice e versa.

Todos sabem que um programa JAVA, por rodar em uma máquina virtual, acaba sendo mais lento que um software comum. No caso do J2ME não é diferente. E, diferente de um PC normal onde rodamos softwares que ocupam 50MB de memória virtual, e rodam a 2000 clocks por segundo, um celular possui a memória extremamente limitada, e um processador não tão rápido quanto nossos PCs atuais.

Bom, por ser um artigo básico, termino aqui a “embromeition” e vamos por a mão na massa.

Utilizaremos a IDE de programação Eclipse, o plugin EclipseME , uma máquina JAVA JDK, e um WTK ou Wireless toolkit .

Bom, toda a instalação será explicada sob a “luz” de um Debian CDD pré 5. Toda a estrutura de diretórios e arquivos de configuração será exemplificada para ele.

Começando a fazer os downloads:

Do site www.sun.com/java, é necessário puxar o J2ME(TM) Wireless Toolkit 2.2 e JDK 5.0
Utilizaremos também o eclipse 3.1 como IDE de desenvolvimento. Podemos puxa-lo de:
http://www.eclipse.org/downloads/index.php
Instalando:

Inicialmente, todos os arquivos puxados devem ser movidos para a pasta /opt/

Logue-se como root, utilizando o comando “su”

para mover os arquivos, utilize os comandos
mv jdk-1_5_0_04-linux-i586.bin /opt
mv eclipse-SDK-3.1-linux-gtk.tar.gz /opt
mv j2me_wireless_toolkit-2_2-linux-i386.bin /opt/

cd /opt/

Primeiro, iremos instalar a máquina java p/ desenvolvimento (JDK).
Agora, ainda como root e na pasta /opt/ dê o comando para dar permissão de execução ao JDK
chmod 777 jdk-1_5_0_04-linux-i586.bin

e execute-o com:
./jdk-1_5_0_04-linux-i586.bin

Provavelmente te perguntará se concordas com alguns termos de licença do java. Digite YES
Os arquivos serão descompactados, e uma pasta /opt/jdk1.5.0_04/ será criada.

Aconselho agora criar um link simbólico para esta pasta com o nome java. Será muito útil quando for atualizar o JDK.

ln -s jdk1.5.0_04/ java

Com a máquina JAVA instalada, instalaremos o WTK.

Da mesma forma, utilize o comando chmod para dar permissão de execução ao arquivo:
chmod 777 j2me_wireless_toolkit-2_2-linux-i386.bin

Execute-o com:
./j2me_wireless_toolkit-2_2-linux-i386.bin

Leia até o final, aceite os termos novamente digitando yes.

Agora, você precisa especificar a localização do interpretador JAVA (Specify a path to a Java interpreter director). Digite 0 e dê enter.

Digite agora
/opt/java/bin

Agora, lhe será perguntado onde instalar o Wireless toolkit. digite:
/opt/WTK2.2

Depois, selecione a opção 0 (Begin copying files if you are satisfied with the settings) e a instalação será iniciada.

Após a finalização da instalação, precisamos descompactar a IDE eclipse.
Fazemos isso facilmente com o comando:

tar -xvzf eclipse-SDK-3.1-linux-gtk.tar.gz

Configurando a máquina JAVA:

É necessário definir algumas variáveis de ambiente para fazer o JAVA funcionar corretamente.
No caso do debian, ainda como root, eu costumo setar as variáveis de ambiente em /etc/profile

Utilizando seu editor de arquivos favorito, edite este arquivo.

Ao fim do arquivo, coloque as seguintes linhas:

JAVA_HOME=/opt/java
CLASSPATH=.:$CLASSPATH
PATH=$PATH:$JAVA_HOME/bin

export PATH

Suas variáveis de ambiente já foram setadas.

Agora, eu costumo adicionar um atalho para o eclipse em /usr/local/bin. Para facilitar a execução do mesmo.
Com seu editor favorito, crie um arquivo chamado /usr/local/bin/eclipse com o seguinte conteúdo:

#!/bin/bash
/opt/eclipse/eclipse &

Novamente, dê permissão de execução ao arquivo com o comando

chmod 777 /usr/local/bin/eclipse

Agora, digite o comando eclipse em um console, e a IDE eclipse será aberta.

Instalando e configurando o plugin EclipseME

Dentro do eclipse, procure pelo menu Help – Software Update – Find and Install.

Cheque a segunda opção: “Search new features to install”, e clique em nextinstall_pagina3.jpg

Vá em New Remote Site e coloque as informações:
Name: EclipseME
URL: http://www.eclipseme.org/updates/
E clique em OK.

Selecione apenas EclipseME e clique em Finishinstall_pagina4.jpg

Na próxima tela, selecione EclipseME e vá em Next;
Aceite os termos, vá em next e depois em finish

O download do plugin EclipseME iniciará.

Depois de feito o download, aparecerá uma nova Janela. Clique em Install ALL

Aparecerá uma nova janela recomendando que seja reiniciado o Eclipse. Clique em Yes

A instalação está concluída com sucesso.

Configurando o Eclipse:

Abra o menu Window – Preferences.

Procure pelo item J2ME à direita – Expanda a àrvore do J2ME, e procure pelo Sub-item “”
Plataform Components.

Clique com o botão direito sobre Wireless ToolKit e, selecione ADD Wireless Toolkit.
No diretório, digite “/opt/WTK2.2/”, e dê um Finish.
Ficará mais ou menos desta forma:

install_pagina5.jpg
Outra configuração para facilitar a programação:

Ainda em preferences, Procure pelo item JAVA, e sub-item “built path”. Selecione Folders. Caso você trabalhe com o eclipse de outra forma, a pastas “bin” e “src” deverão ser criadas manualmente no início de cada projeto.

Criando nosso Primeiro Hello World.

Primeiro, precisamos criar um novo projeto.

Vá em menu File, New, Project.

Selecione J2ME Midlet Suite. O nome do projeto será OlaMundo
Deixe as opções seguintes como está mesmo, não é preciso mexer.

O nosso novo projeto estará sendo mostrado a esquerda do eclipse.

Procure pela pasta src dentro do projeto, e com o botão direito procure por New – Class
Aonde pergunda por Name, digite OlaMundo e dê um finish

Será criado um novo Arquivo: OlaMundo.java

Nele, colocaremos o seguinte teste de código:


import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class Teste extends MIDlet implements CommandListener
{
Display display;
Form Main;
Command bt_sair = new Command("Sair",Command.EXIT,1);

public Teste() {
display = Display.getDisplay(this);

Main = new Form("Título da Form");
Main.addCommand(bt_sair);
Main.setCommandListener(this);

}

public void startApp() {
display.setCurrent(Main);
}

public void pauseApp() {

}

public void destroyApp(boolean uncondional) {

}

public void commandAction(Command c, Displayable s) {
if(c == bt_sair){
destroyApp(false);
notifyDestroyed();
}

}
}

Resolvendo problemas

Depois de tentar seguir à risca esse artigo, descobri que podem aparecer alguns problemas.
Se, na execução do eclipse, aparecer a seguinte mensagem de erro:
EclipseME
Significa que a máquina java não está sendo encontrada. Ou seja, as variáveis de ambiente estão erradas, ou que o arquivo /etc/profile não está sendo lido.

Primeiro verifique se as variáveis de ambiente estão corretas.
Caso estejam, edite o arquivo /usr/local/bin/eclipse e coloque o seguinte código:
#!/bin/bash
source /etc/profile

/opt/eclipse/eclipse &
Por algum motivo, o arquivo /etc/profile não está sendo lido por padrão, então nós forçamos o nosso atalho do eclipse a ler esse arquivo.
Caso aconteça de, ao tentar rodar um programa no eclipse, dar um erro na execução, e não conseguir executar o OlaMundo, verifique as permissões dos arquivos da pasta /opt/WTK2.2

Warning: Failed to initialize WMA message routing support
Warning: Failed to initialize Bluetooth (JSR 82) support
at com.sun.kvem.midp.MIDP.run(Unknown Source)

at com.sun.kvem.environment.EmulatorInvoker.runEmulatorImpl(Unknown Source)
at com.sun.kvem.environment.EmulatorInvoker.runEmulatorSameVM(Unknown Source)
at com.sun.kvem.environment.EmulatorInvoker.runEmulator(Unknown Source)
at com.sun.kvem.environment.ProfileEnvironment$KVMThread.runEmulator(Unknown Source)
at com.sun.kvem.environment.ProfileEnvironment$KVMThread.run(Unknown Source)

Isso provavelmente seja um problema de permissão.

Pode ser revolvido com o seguinte comando:
find /opt/WTK2.2/ -exec chmod 777 {} \;
Sei que não é legal dar permissões 777, pois libera escrita pra todo mundo.

Mas por algum motivo insano, permissões do tipo 755 não surtiram efeito. Se alguém tiver outra sugestão, posta ae também.

Comments (30) left to “Iniciando Java para celulares!”

  1. Pander wrote:

    When /opt/WTK2.2 is owned by root and you would like to start emulator as a user, this is enough:
    chmod go+r /opt/WTK2.2/wtklib

  2. Pander wrote:

    I mean:

    chmod go+w /opt/WTK2.2/wtklib
    chmod -R go+w /opt/WTK2.2/appdb/DefaultColorPhone

  3. Danilo Cesar wrote:

    Thank you Pander!

    I will change my post after test your tip.

    Danilo Cesar

    outros

  4. protected * void » Facilidade para aplicações gráficas com J2ME wrote:

    [...] Como já tinha comentado em alguns posts antigos meus, desenvolver aplicações JAVA para dispositivos móveis pode ser uma brincadeira muito bacana. Mas, se alguém tentou faze-lo, também deve ter percebido que desenvolver aplicativos gráficos com várias telas é uma tarefa extremamente chata.Neste post vou comentar o que achei do Netbeans e do add-on Netbeans Mobility Pack. [...]

  5. shen wrote:

    Hi

    I`v tryed with all the different permissions. Even put chmod 777 on all the files, and tryed running eclipse with root and the user. I have the latest J2ME version and tryed with WTK 1.04 WTK 2.1 and WTK2.5.1EA. But I still don`t see any devices. Anyone knows?

  6. Antonio Marcos wrote:

    Pelo amor de Deus, to desesperado, queria muito concluir este seu excelente artigo, baixei os pacotes, instalei tudo direitinho, quando fui instalar o Eclipse, eu entro nele e entre um next e outro naquela parte que deve-se aceitar os termos quando eu aceito os termos dã uma porcaria de um erro, por favor me ajuda. Abraos

  7. maynard wrote:

    meu celular nao tem java posso baixar o java para ele, se posso na onde?

  8. Renan wrote:

    Gostaria de tirar umas duvidas, se esse post, é valido para usuarios com sistema windows, eu e uma equipe estamos pensando em desenvolver um sisteminha para celular, um dicionario.

    se souber de algo que posso nos auxiliar pois nao sabemos como come;ar.

  9. Renata wrote:

    Danilo, gostaria de sua ajuda, tenho um celular mp7 e alguns jogos não funcionam porque não tem o java, vc poderia me orientar como faço para por o java em meu celular? Obrigada.

  10. mateus wrote:

    eu tbm tenho um mp7, e ele não tem java, onde posso baixa-lo???
    valeu

  11. Alvaro wrote:

    Aê,,meu problema é mesmo deles aí acima,,
    eu comprei um MP7, e tambem nao tem java,,oq é q eu faço,,please!!!

  12. Ellen wrote:

    Tenho um MP9 e ele não possui java, tem como instalar o java nele?

  13. Charles wrote:

    Mesmo problema dos colega acima, tenho um MP7 e Java nem pega, gostaria de saber o que posso fazer para ter o aplicativo.

  14. Juliano wrote:

    Tbm tenho um MP9 e ñ tem java, como eu insta-lo java nele? Tem algum site especifico? Ou programa?

  15. Renata wrote:

    Tenho o mesmo problema do mp7, será q alguém poderia me ajudar????please!!!

  16. Gustavo wrote:

    Taambém tenho um MP9, e não tem java ! Tem como instalar javaa nele ? Tem algum site pra baixar ?

  17. Danilo Cesar wrote:

    Tá, vou ser sucinto: Não, não dá.

    Java vem embarcado pela fabricante (Nokia, Motorola, etc). Se seu celular não tem a JVM (máquina virtual Java) esqueça, e cogite comprar um celular melhor. Eu recomendo os S60 da Nokia.

    Esses MP_ (coloque seu número aqui) xingling são fria. Não comprem!

  18. Andrei wrote:

    Alguém poderia me dizer o Código Java do celular Samsung C3050? valeu!

  19. matheus wrote:

    eu queria um programa java para meu celular mp8 k2.

  20. Donanfer wrote:

    eu queria um programa java para meu celular mp9

  21. neemias baiao matos wrote:

    baixar programa java

  22. Márcia wrote:

    Oii tnh o msm problema do pessoal ai de cima.Meu celular nao tem java.Como faço p instalar um programa java neele, se eh q eh possivel.!?

  23. cleiton wrote:

    gostaria de instalar o programa JAVA, para meu celular, e tmb instalar jogos, como eu faço por favor me ajudem.

    ABRAÇO

  24. sergio batista wrote:

    gostaria de instalar o programa JAVA, para meu celular e tmb instalar jogos, meu aparelho é um (mp11 vaic t800i) como eu faço para enstalar o progama, preciso de ajuda; muito obrigado.

  25. sergio batista wrote:

    gostaria de instalar o programa JAVA, para meu celular e instalar jogos, meu aparelho é um (mp11 vaic t800i) como eu faço para enstalar o progama, preciso de ajuda; muito obrigado.

  26. Luiz Carlos wrote:

    Ola,
    Tenho um macbook e nele instalado o slackware 13.0 64 bits
    Instalei o jdk 1.6 64bits mais novo, apos isto, instalei tb o eclipse pulsar x86_64 e o wtk2.5.2_01, mas estou com um problema:

    apos abrir o eclipse e ir em >window >preferences >device management > IMPORT, seto a pasta onde foi instalado o wtk, porem ao concluir nenhum dispositivo e encontrado.

    se alguem souber como resolver isso desde jah agradeco
    tentei instalar o netbeans tb mais novo mas da essa msg:java.io.IOException: Cannot run program “/opt/netbeans-6.7.1/mobility8/WTK2.5.2/bin/preverify”: java.io.IOException: error=2, No such file or directory

    Obrigado

  27. dionathan wrote:

    eu tenho um mp7 eu queria baixar o java para ele como eu faso valeu

  28. Matsuo wrote:

    Se tiverem um Windows Mobile, existe uma solução:
    Emulador de Java (chamado de JAVA SDK)
    procurem no google q axa.
    Testei e funcionou na maioria dos aplicativos J2ME

  29. ariclecio wrote:

    eu tenho um mp 14 da marca vaic t-1200 e ele nao tem o programa do java, gostaria de saber se tem como instalar esse aplicativo?

  30. hugo cesar wrote:

    quero saber como ativar o java do meu celular ele é de dois chip.
    e não tem java tem, como istalar um java nele para colocar jogos porque ele não pega
    jogo nenhum…. baixado pela net.
    responda por favor…

Post a Comment

*Required
*Required (Never published)