Programação da Raspberry Pi com Java – Primeiros passos 9

Java é uma linguagem orientada a objetos muito utilizada em projetos das mais variadas complexidades. Eleita a terceira linguagem mais utilizada no mundo pelo IEEE, com ela faz-se de quase tudo: aplicativos de celular, parte back-end de sistemas web, jogos, etc. Sendo assim, porque não desenvolver seus projetos na Raspberry PI com Java? É justamente isso que este artigo irá propor, ensinar os primeiros passos do desenvolvimento de software com Java na Raspberry PI com a NetBeans IDE.

Material necessário

Para acompanhar este post, você precisará do seguinte material:

* É necessário que a Raspberry PI 3 esteja operacional, ou seja, com cartão SD, com sistema operacional instalado e funcionando (no caso, a última versão da distribuição Raspbian) e conectividade à internet.

Recomenda-se que você tenha uma noção básica de Java também, para melhor compreensão do post.

Primeiro passo – instalação do Java no computador que você irá programar

Basicamente, para conseguir desenvolver e rodar software feito em Java você precisará do seguinte:

  • JRE (Java Runtime Environment): contém tudo o que é necessário para rodar aplicações feitas em Java
  • JDK (Java Development Kit): contém tudo o que é necessário para desenvolver aplicações em Java. Tipicamente, a instalação do JDK também faz a instalação do JRE.

O processo para instalação do JDK (que, conforme dito, já irá instalar o JRE) varia de acordo com seu sistema operacional. Portanto, abaixo seguem links de tutoriais para instalação no Windows (8 e 8.1) e Linux (distribuição Ubuntu):

A Raspberry PI já vem com tudo de Java que é necessário já instalado (se você usar a distribuição Raspbian OS). Portanto, sua Raspberry já está preparada.

Segundo passo – instalação da NetBeans IDE

Há varias IDEs que suportam programação em Java, porém as principais são a Eclipse IDE e NetBeans IDE. De acordo com a minha vivência no desenvolvimento, a Netbeans IDE é a mais recomendada para àqueles que estão iniciando no Java, pois facilita muito o processo de deploy de aplicações Java remotamente via |rede na Raspberry PI, de modo que quem está iniciando não irá “bater cabeça” com configurações complicadas.

Para instalá-la, basta ir até o site oficial (link) e baixar (baixe a versão JAVA SE, “Java Standard Edition”).  Ou, se você usa Linux, há grandes chances do NetBeans já estar disponível no seu sistema de gerenciamento de pacotes. No caso do Ubuntu, por exemplo, o NetBeans pode ser instalado com o seguinte comando:

sudo apt-get install netbeans

Terceiro passo – configuração de um hostname para a Raspberry PI

Agora é o momento de configurar um hostname para a Raspberry PI. Grosso modo, o hostname serve para podermos nos conectar de forma mais intuitiva à Raspberry PI, utilizando na conexão o hostname ao invés do IP. Como o IP pode ser dinâmico (DHCP), configurar um hostname não é só cômodo como também é produtivo. Para isso, siga o passo-a-passo abaixo:

  1. No terminal Linux / console, acesse o programa de configuração da Raspberry PI com o seguinte comando:
    sudo raspi-config
  2. No programa de configuração, busque pela configuração hostname e acesse-a.
  3. Nela, configure um nome amigável como hostname. Não pode haver espaços nem caracteres especiais (ou seja, somente letras e números são permitidos).
    Como sugestão, coloque o nome rasppi3b.
  4. Vá até a opção “Ok” e depois em “Finish”.
  5. Será solicitado que a Raspberry PI seja reiniciada. Clique em Ok e aguarde que a Raspberry PI complete o processo de reboot.

Após o reboot da Raspberry PI, do seu computador (que deve estar na mesma rede que a Raspberry PI) faça um ping em NOME_QUE_VOCE_CONFIGUROU_NO_HOSTNAME.local (onde NOME_QUE_VOCE_CONFIGUROU_NO_HOSTNAME será , se você seguiu minha sugestão de nome, rasppi3b). Você notará que o ping terá resposta, significando que o hostname foi configurado com sucesso.

Quarto passo – configuração da IDE para fazer deploy via rede na Raspberry

Uma vez instalada, é hora de configurar o NetBeans para, automaticamente fazer deploy via rede de uma aplicação Java na Raspberry PI e a executar remotamente também. Para isso, siga o procedimento abaixo:

  1. No NetBeans, vá até o menu “Tools” e depois em “Java Platforms”.
  2. Na janela que surgir (Java Platforms Manager), clique no botão “Add Platform…”.
  3. Na janela que abrir, selecione “Remote Java Standard Edition”, conforme mostra a figura 1.
    Figura 1
    Figura 1 – seleção do tipo de Java Platform

     

  4. Na janela que abrir, preencha seus dados conforme a figura 2, considerando o seguinte:- Em Username e Password, utilize os seus configurados na sua Raspberry PI (se você nunca mexeu nisso, o Username e Password são, respectivamente, pi e raspberry pi).
    – No campo Remote JRE Path, preencha com: /usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/

    Figura 2 - configurações de acesso à Java Remote Platorm (Raspberry PI)
    Figura 2 – configurações de acesso à Java Remote Platorm (Raspberry PI)

     

  5. Clique em “Finish” e aguarde enquanto o NetBeans estabelece conexão com a sua Raspberry PI via rede local.
  6. Pronto! Se tudo correu bem na conexão entre NetBeans e Raspberry PI, você está pronto para fazer deploy via rede de aplicações diretamente na sua Raspberry PI com Java.

Quinto passo – fazendo o Hello World na Raspberry PI com Java

Para fazer o Hello World em Java na Raspberry PI, siga o procedimento abaixo:

 

  1. No NetBeans, clique em “File” e depois em “New Project”.
  2. Na janela New Project, selecione Java e depois Java Application, conforme mostra a figura 3.
    Figura 3 - New Project
    Figura 3 – New Project

     

  3. Na janela seguinte (New Java Application), preencha o campo Project Name com “HelloWorldJava” (sem as aspas) e clique em “Finish”.
  4. Aguarde alguns segundos enquanto o NetBeans cria o projeto. Feito isso, você pode observar à esquerda os projetos abertos do seu workspace e à direita o código-fonte da única classe de nosso projeto, a HelloWorlJava.java. Observe a figura 4.
    Figura 4 - projeto criado
    Figura 4 – projeto criado

     

  5. Agora, dentro do método main(), substitua o comentário “// TODO code application logic here” pela seguinte linha de código abaixo. Tal linha fara com que o programa, ao ser rodado (ou seja, quando o método main() for executado), escreva no console o texto “Hello World Java na Raspberry PI!” (sem as aspas).
    System.out.println("Hello World Raspberry PI com Java!");
  6. Agora precisamos informar ao NetBeans que este programa deverá ser executado remotamente na Raspberry PI. Para isso, clique em “File” e depois em “Project Properties (HelloWorldJava)”.
  7. Clique em “Run” à esquerda e depois, no combo “Runtime Platform”, clique sobre RaspberryPI. Será solicitado que você coloque o nome da configuração. Digite RaspberryPI e clique em OK.
  8. Clique em OK na janela “Project Properties – HelloWorldJava”.
  9. Agora, clique em Run (botão Play em verde, conforme mostra a figura 5.
    Raspberry Pi com Java
    Figura 5 – botão de execução do projeto (nesse caso, execução remota via rede na Raspberry PI)

     

  10. Automaticamente o seguinte processo será feito:- Compilação do código do projeto
    – Build do JAR do projeto
    – Copia o arquivo JAR gerado para a Raspberry PI via rede local (usando SCP)
    – Inicializa conexão SSH com a Raspbeery PI
    – Roda a aplicação remotamente na Raspberry PI
  11. Aguarde alguns segundos até o deploy e execução serem feitos. Como resultado, abaixo do código (chamada Output), você verá o resultado da execução (feita remotamente na Raspberry PI. Observe o que aparece no Output no trecho abaixo:
    ant -f /home/pedro/NetBeansProjects/HelloWorldJava -Dnb.internal.action.name=run -Dremote.platform.rp.target=linuxarmvfphflt-15 -Dremote.platform.password=***** -Dremote.platform.rp.filename=linuxarmvfphflt -Dremote.platform.java.spec.ver=18 run-remote
    init:
    Deleting: /home/pedro/NetBeansProjects/HelloWorldJava/build/built-jar.properties
    deps-jar:
    Updating property file: /home/pedro/NetBeansProjects/HelloWorldJava/build/built-jar.properties
    compile:
    Copying 1 file to /home/pedro/NetBeansProjects/HelloWorldJava/build
    Nothing to copy.
    To run this application from the command line without Ant, try:
    java -jar "/home/pedro/NetBeansProjects/HelloWorldJava/dist/HelloWorldJava.jar"
    jar:
    Connecting to rasppi3b.local:22
    cmd : mkdir -p '/home/pi/NetBeansProjects//HelloWorldJava/dist'
    Connecting to rasppi3b.local:22
    done.
    profile-rp-calibrate-passwd:
    Connecting to rasppi3b.local:22
    cmd : cd '/home/pi/NetBeansProjects//HelloWorldJava'; '/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre//bin/java'  -Dfile.encoding=UTF-8   -jar /home/pi/NetBeansProjects//HelloWorldJava/dist/HelloWorldJava.jar 
    Hello World Raspberry PI com Java!
    run-remote:
    BUILD SUCCESSFUL (total time: 4 seconds)
  12. Na antepenúltima linha do trecho anterior, observa-se que após a execução do programa, há o texto “Hello World Raspberry PI com Java!” (sem aspas).
    Logo, está feita a execução remota via rede de uma aplicação Java na Raspberry PI!!!

Feito isso, você agora está livre para desenvolver quaisquer aplicações usando Raspberry Pi com Java e, via rede local, fazer o deploy automaticamente na placa.

Livros recomendados

Segue abaixo alguns livros recomendados para àqueles que estão iniciando no desenvolvimento de software com Java:

  • Raspberry Pi with Java: Programming the Internet of Things (IoT) – autores: Stephen Chin e James Weaver
  • Use a cabeça! Java – autores: Kathy Sierra e Bert Bates

Gostou do projeto Programação da Raspberry PI com Java – primeiros passos? Então deixe seu comentário logo abaixo.

Faça seu comentário

Acesse sua conta e participe

9 Comentários

  1. Wowwww, Cara, show!!! parabens pela iniciativa…. Agora, tentei com o netbeans 12, e não encontrei por la essa opção…… voce tem ideia de como tá??????

  2. Pedro, quando temos o OpenJDK Server VM (build 11.0.3+7-post-Raspbian-5, mixed mode), qual seria o Remote JRE Path. Usei o NetBeans IDE 8.0.1 (Build 201408251540), com o ava(TM) SE Runtime Environment 1.8.0_211-b12 em meu PC. Agora pretendo rodar o .Jar na Raspberry PI 3b.

    ALEXANDRE ROBERTO PEREIRA DE SOUZA
  3. Olá! Excelente artigo! Estou precisando desenvolver um projeto e gostaria de saber se o Java contemplara os seguintes requisitos: Banco de dados, Interface gráfica para uma simples tela de cadastro e acesso aos pinos gpio da raspberry. Com o Java terei esses recursos? Há alguns links de referência ou alguma outra plataforma que contemple esses requisitos? Obrigado!

    1. Rafael, obrigado pelos elogios!

      Embora eu não tenha projetos Java que abordem todos estes requisitos (nem referências), sei que é possível fazer isso com Java sim.

      Atenciosamente,
      Pedro Bertoleti

  4. Tem como fazer uma aplicação para manipular as GPIO usando Java ao invés de Phyton?

    1. Renan, uma forma é utilizar bibliotecas Java prontas para este fim. Uma bem utilizada é esta: http://pi4j.com/example/control.html

      1. Show, obrigado grande abraço!

  5. Aqui deu o seguinte erro: Could not connect to remote java SE Plataform. Please check your settings. na hora de adicionar o raspberry pi via remoto no netbeans.

    1. Pedro, faça um ping na sua Raspberry PI Zero W com o hostname (exemplo: rasppizerow.local) e veja se ele está válido (se o ping funciona). Esta me parecendo que algo não deu certo no seu ajuste do hostname.