Skip to content

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.

33 Comments