2010-11-09 17 views
6

Estoy trabajando en una aplicación llamada Enchanting. La aplicación, basada en Scratch, emite código fuente de Java y lo compila para cargarlo en LEGO Mindstorms NXT Robots.¿Puedo distribuir un JDK con mi aplicación?

Aunque la aplicación es muy temprana, los usuarios tienen dificultades para instalarla.

En este momento los usuarios de Windows tienen que:

  • descargar e instalar un Kit de Desarrollo de Java
  • descargar e instalar LeJOS (una biblioteca de java para el NXT)
  • posiblemente tweak variables de entorno
  • entonces pueden descargar, instalar y ejecutar Enchanting

Si pudiera proporcionar un instalador que w Ould incluir el JDK, y LeJOS, pude averiguar las variables de entorno en tiempo de ejecución, y el proceso se convierte en:

  • Descargar, instalar y ejecutar Encantador

¿Hay una manera de redistribuir una JDK?

(Por cierto, Processing (un entorno de programación basado en texto simplificado) parece ofrecer una versión que viene con el JDK, por lo que parece que hay una forma legítima de hacerlo).

Addendum: Me gustaría que un usuario de Windows que no tiene instalado Java pueda ejecutar un solo archivo .exe para instalar el JDK, LeJOS y Enchanting.

+0

Sí, el JDK se puede redistribuir libremente. Cómo lo haría depende de su entorno y la implementación –

Respuesta

4

La información sobre la redistribución es here.

y puede usar PackJacket, para empaquetar todos los archivos que necesita y crear un instalador.

+4

Finalmente lo probé, aunque dije que se requiere un JDK, y me da un .exe, tan pronto como se ejecuta, solicita un JRE para que pueda ejecuta el instalador Eso es algo frustrante: ¿de qué sirve crear un .exe para un instalador si va a solicitar que Java lo ejecute? (Pensé que sería desempaquetar un JDK, ejecutar Java, instalar mi software y dejar el JDK con él). –

+0

Enlace muerto para la información de redistribución – Mike

0

Suponiendo que cumple todos los términos legales necesarios para distribuir cosas, puede usar izpack para instalar todos los requisitos previos, incluidos un JDK/JVM y la configuración de las variables de entorno.

0

Varias herramientas basadas en IBM Eclipse tienen JDKs con ellas.

0

O simplemente podría emitir bytecode directamente. Puede agrupar un lenguaje dinámico JVM mucho más pequeño (que el JDK) y luego utilizarlo para compilar en código de bytes o utilizar bibliotecas creadas para ese fin.

(Tengo lo siguiente desde la página Projects using Kawa)

App Inventor utiliza Kawa traducir su lenguaje visual bloques.

... El Nice compilador (NICEC) utiliza gnu.expr y gnu.bytecode paquetes de Kawa para generar el código de bytes de Java. ...

Este es el último que usa el marco de lenguaje Kawa para generar bytecode.

No te olvides de Groovy, Jython, Clojure y Ruby. Dato interesante sobre Groovy, el intérprete puede compilar código Java ya que Groovy es (más o menos) un superconjunto de Java.

Cuestiones relacionadas