Como posso executar o software Java?

35

Qual é a melhor maneira de executar o código Java no RP? A instalação do OpenJDK a partir dos repositórios Debian / Fedora funciona bem? Existem ajustes que se deve usar para melhorar o desempenho? Além disso, existe uma JVM "leve" disponível para o RP que é executada melhor / mais rapidamente do que a JVM padrão do OpenJDK? Em caso afirmativo, como isso é obtido e instalado?

Darren Wilkinson
fonte
11
Observe que o OpenJDK ainda não possui um ARM JIT, tornando-o lento.
Thorbjørn Ravn Andersen
Parece que o ARM JIT da Oracle não faz parte do OpenJDK.
Thorbjørn Ravn Andersen

Respostas:

15

Para a parte "leve" da sua pergunta, há várias JVMs menores que você pode querer considerar.

Por exemplo, o JamVM foi originalmente projetado para funcionar em pequenos sistemas como o RP e ele e o Cacao (outra JVM menor) estão disponíveis como pacotes no debian:

icedtea-7-jre-jamvm
icedtea-7-jre-cacao

embora ambos usem as bibliotecas de classes open-jdk AFAIK e as bibliotecas de classes que são a grande parte (em termos de pegada de disco) da instalação de um JRE.

Maks
fonte
11

A instalação a partir dos repositórios deve funcionar bem no Debian:

sudo apt-get clean
sudo apt-get update
sudo apt-get install openjdk-6-jre

Java não parece estar disponível no repositório do Arch.

Alguém pode editar com informações para o Fedora, não tenho conhecimento dessa distribuição.

Jivings
fonte
3

Eu tenho visto muito interesse em executar várias JVMs reduzidas em raspberry pi, mas poucas pessoas procuraram compilar java diretamente no código da máquina. http://gcc.gnu.org/java/ hospeda um compilador que pode fornecer código de máquina a partir de java ou de código de java byte. O projeto para o qual eu iria usar o gcj acabou sendo descartado antes de decolar, mas o compilador é considerado um bom ajuste para sistemas embarcados, de modo que ele se adapte perfeitamente ao raspberry pi.

No meio da página deste fórum, há um gráfico muito bom que alguém fez comparando o desempenho relativo de várias JVMs, bem como o gcj http://www.raspberrypi.org/phpBB3/viewtopic.php?t=6330&p=124107 . Lembre-se de que esses benchmarks foram feitos antes do drástico aumento de desempenho incluído na mais recente distribuição raspbian.

Dan B
fonte
Agora, seis meses depois, você tem experiência prática em fazer isso no Raspberry?
Thorbjørn Ravn Andersen
2

Não tenho nenhum JDK leve especial que eu conheça, mas o openjdk normal do repositório parece funcionar bem para mim.

Eu digo ok - não há nenhum problema com a funcionalidade em si, pelo menos nenhuma que eu encontrei. Isso inclui aplicativos inesgotáveis, o Swing / AWT também parece funcionar bem (ainda não experimentou o JavaFX.) Por outro lado, o desempenho não é algo para se preocupar devido à falta de JIT (consulte esta pergunta ).

berry120
fonte
1

A Oracle lançou o Java 8 (e o Java 7) para ARM. Use o link desta página para obter a melhor versão Java atualmente para o seu Raspberry Pi.

Isso também deve funcionar:

sudo apt-get update
sudo apt-get install oracle-java8-jdk
Simulante
fonte
0

Não sei como funciona com uma JVM, mas sei que o ARM SoC no Raspberry Pi pode executar o bytecode Java em si.

Eu não tenho o Raspberry Pi para testar o JRE. Então eu especulo.

Use: cat /proc/cpuinfo/e veja se o java pode suportar o Raspberry Pi.

Ranomier
fonte
11
Esse javasinalizador /proc/cpuinfosignifica que a CPU suporta a extensão Jazelle. Você pode ler sobre isso na wikipedia .
Krzysztof Adamski
O problema com o Jazelle é que nenhuma das JVMs de código aberto pode usá-lo.
Alex Chamberlain