¿Cómo puedo ejecutar el software Java?

35

¿Cuál es la mejor manera de ejecutar código Java en el RP? ¿Funciona bien instalar OpenJDK desde los repositorios de Debian / Fedora? ¿Hay ajustes que uno debería usar para mejorar el rendimiento? Además, ¿hay un JVM "ligero" disponible para el RP que funcione mejor / más rápido que el JVM estándar de OpenJDK? Si es así, ¿cómo se obtiene e instala?

Darren Wilkinson
fuente
1
Tenga en cuenta que OpenJDK todavía no tiene un ARM JIT, lo que lo hace lento.
Thorbjørn Ravn Andersen
Parece que el ARM JIT de Oracle no es parte de OpenJDK.
Thorbjørn Ravn Andersen

Respuestas:

15

Para la parte "ligera" de su pregunta, hay una serie de JVM más pequeñas que puede considerar.

Por ejemplo, JamVM se diseñó originalmente para funcionar en sistemas pequeños como el RP y tanto él como Cacao (otra JVM más pequeña) están disponibles como paquetes en debian:

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

aunque ambos usan las bibliotecas de clases open-jdk AFAIK, y son las bibliotecas de clases que son la gran parte (en cuanto a la huella del disco) de instalar un JRE.

Maks
fuente
11

La instalación desde los repositorios debería funcionar bien en Debian:

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

Java no parece estar disponible en el repositorio de Arch.

¿Alguien puede editar con información de Fedora? No tengo conocimiento de esa distribución.

Jivings
fuente
3

He visto mucho interés en ejecutar varias JVM reducidas que se ejecutan en Raspberry Pi, pero pocas personas han estudiado la compilación de Java directamente al código de la máquina. http://gcc.gnu.org/java/ aloja un compilador que puede proporcionarle código de máquina desde java o desde código de bytes java. El proyecto para el que iba a usar gcj terminó siendo descartado antes de que despegara, pero el compilador se considera como un buen ajuste para los sistemas integrados, por lo que debería adaptarse perfectamente a la frambuesa pi.

A la mitad de la página en este foro hay un gráfico muy bueno que alguien hizo comparando el rendimiento relativo de varias JVM, así como gcj http://www.raspberrypi.org/phpBB3/viewtopic.php?t=6330&p=124107 . Tenga en cuenta que estos puntos de referencia se realizaron antes del aumento drástico del rendimiento incluido en la última distribución de raspbian.

Dan B
fuente
Ahora, seis meses después, ¿tienes experiencia práctica haciendo esto en Raspberry?
Thorbjørn Ravn Andersen
2

No conozco ningún JDK ligero especial, pero el openjdk normal del repositorio parece funcionar bien para mí.

Digo ok-ish : no hay ningún problema con la funcionalidad per se, al menos ninguno que haya encontrado. Eso incluye aplicaciones principales, Swing / AWT también parece funcionar bien (no he probado JavaFX). El rendimiento, por otro lado, no es nada correcto debido a la falta de JIT (vea esta pregunta ).

berry120
fuente
1

Oracle lanzó Java 8 (y Java 7) para ARM. Use el enlace de esta página para obtener la mejor versión de Java actualmente para su Raspberry Pi.

Esto también debería funcionar:

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

No sé cómo funciona con una JVM, pero sé que el SoC ARM en la Raspberry Pi puede ejecutar el código de bytes de Java.

No tengo la Raspberry Pi para probar JRE. Entonces especulo.

Utilice: cat /proc/cpuinfo/y vea si Java podría soportar la Raspberry Pi.

Ranomier
fuente
1
Este javaindicador /proc/cpuinfosignifica que la CPU admite la extensión Jazelle. Puedes leer sobre esto en wikipedia .
Krzysztof Adamski
El problema con Jazelle es que ninguna de las JVM de código abierto puede usarlo.
Alex Chamberlain