2011-01-15 11 views
24

A partir de la próxima versión de Mac OS X, Java ya no estará incluido en el sistema y no quiero forzar a mis clientes a que lo instalen ellos mismos. Así que me gustaría hacer lo que hago en Windows, agruparlo con mi aplicación. También me da cierta esperanza de que pueda incluirse en la Mac App Store.Agrupación de un JRE privado en Mac OS X

¿Dónde puedo descargar un Mac OS X JRE que pueda incluir con mi aplicación? ¿O puedo copiar el que está instalado en mi Mac?

+0

Simplemente curioso, ¿dónde aprendiste que Mac OS X no incluirá ningún JRE? –

+0

Java 6 SE estará disponible en OS X 10.7: http://www.apple.com/pr/library/2010/11/12openjdk.html – mipadi

+0

@mipadi: Creo que la palabra clave es "disponible", en lugar de "incluido en la instalación predeterminada". Quizás incluso Apple deje abiertas sus opciones para 10.7. El hecho es, sin embargo, que un programa que requiere Java no es elegible para Mac App Store. Java se convertirá en una descarga opcional tarde o temprano, primero desde Apple y luego desde Oracle. –

Respuesta

12

Actualización (04/15/2013):

Como Thorbjørn amablemente señaló, Oracle tiene ahora una solución para esto. Ver http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html. Sin embargo, guardo el contenido original para "propósitos históricos" y porque fue un proyecto de investigación divertido.

versión anterior (con modificaciones):

Esta es una gran pregunta. Iba a responder que simplemente estás adelantado a tu tiempo, como dijiste, Java no será eliminado hasta la liberación del León. Sin embargo, this article deja claro que no está permitido el uso de Java hoy:

Aplicaciones que utilizan tecnologías en desuso u opcionalmente instaladas (por ejemplo, Java, [código de PowerPC que requiere] Rosetta) será rechazada.

Al mismo tiempo, nadie ha anunciado un JRE redistribuible para Mac OS X todavía. Creo que su mejor apuesta, teniendo en cuenta que está forjando un nuevo terreno, es verificar el Mac OS X Port wiki page del proyecto OpenJDK. Es describe cómo compilar su propio JDK, pero no indica claramente si el JDK resultante se puede "empaquetar" limpiamente o no. Creo que tendrás que probarlo y ver :-(.

Además, no está claro si la licencia OpenJDK permite esto en absoluto (IANAL). Esperemos que alguien más ya haya descubierto esto con respecto a Linux/Windows, aunque, por supuesto, las reglas pueden ser diferentes para las contribuciones de Apple

esperanza esto ayuda Si nada más, es un punto de partida

EDIT:.... voy a tirar una sugerencia adicional ahora saber que Mono apps can be packaged for the App Store. Además, IKVM.NET es una implementación completa de Java que se ejecuta en la parte superior de Mono.Podría intentar, en teoría, juntar estas dos piezas y obtener una aplicación Java, incluida para la App Store, que no incluye , sino, ¡que requiere un JRE!

Si prueba esto, me encantaría saber cómo funciona :-).

EDIT 2: Desafortunadamente, la App Store y la GPL no parecen ser compatibles (consulte http://www.zdnet.com/blog/open-source/no-gpl-apps-for-apples-app-store/8046). La licencia OpenJDK no es exactamente lo mismo que la GPL, pero está bastante cerca (nuevamente, IANAL). Por lo tanto, Mono & IKVM.NET puede ser su mejor opción. ¡Buena suerte!

+3

No tiene que distribuir su aplicación a través de la tienda de aplicaciones. Si lo haces, puedes agrupar un JRE con él y soltarlo también bajo la licencia GPL. (Esto está más dirigido al OP que a Matt Solnit, pero pensé que era relevante comentar aquí). – mipadi

+0

[Link] [1] de [mipadi] [2] afirma que Java formaría parte de 'Lion'. Estoy confundido. [1]: http://www.apple.com/pr/library/2010/11/12openjdk.html [2]: http://stackoverflow.com/users/28804/mipadi –

+0

@unhillbilly estás correcto, es mi error. Lion incluirá Java 6, pero Java 7 será una descarga separada de Oracle. Sin embargo, esto no cambia la situación de la App Store. –

-2

Apple se unió al proyecto de código abierto Sun/Oracle OpenJDK el mes pasado, por lo que Java en Apple está vivo y coleando.

Simplemente diga al usuario que descargue e instale el OpenJDK JRE para Mac OSX (cuando esté disponible, ahora mismo es solo código fuente).

Y no. no puede incluir "la carpeta que está en su mac" sin permiso, ya que es un código protegido por derechos de autor de Apple.

Por último, empaquetar un "JRE privado" es una muy mala práctica, hará que su aplicación se hinche, y si el usuario termina ejecutando varias aplicaciones Java, terminará ejecutando simultáneamente varias máquinas virtuales Java, lo cual es una pérdida terrible los recursos del sistema.

+1

Soy muy consciente de la situación de Apple/Oracle. Eso no soluciona mi problema. Además de compilar de algún modo en código nativo, empacar un JRE privado es la única forma de obtener una aplicación Java en el Mac App Store. Las reglas dicen que una aplicación no debe tener dependencias en componentes opcionales de terceros. Desafortunadamente, no puedo "simplemente decirle al usuario". –

+1

Actualmente no puede decirle a nadie, y nunca * podrá decirle a los usuarios de la App Store, que "descargue e instale OpenJDK JRE para Mac OS X", por lo que realmente no responde la pregunta en absoluto. – Chuck

4

En la misma búsqueda web que encontré esta pregunta, encontré el these instructions del proyecto OpenJDK. Al no haberlo probado, no puedo comentar lo bien que funcionan.

Mientras tanto, otro, very detailled article fue publicado por Marco Dinacci que también se usa para firmar y sandboxing.