2016-06-24 15 views
5

Bir Java programını çalıştırmak için Java komutunu programsal olarak çağıran bir OS X objektif-c uygulamasına sahibim.Uygulama paketindeki JVM kopyasını ekleyin

Doğruysa, Java artık OS X'de varsayılan olarak yüklenmez. Uygulamamı göndermek istiyorum ve uygulamayı kullanmadan önce kullanıcıları Java'yı indirmeye zorlamıyorum.

Java yürütülebilir dosyasının bir kopyasını çalışma zamanı (rt.jar) ile birlikte nasıl gönderebilirim. Tabii ki elbette uygulama paketinde rt.jar'u kopyalayabilirim ama java binary? Bunu da kopyalayabilir miyim?

cevap

0

JRE'yi uygulamanıza gönderebilirsiniz (bkz. licensing). Kullanıcıya JRE'nin bir kopyasını vermek, bir tane yerleştirmek ve kendileri veya make a application bundle'u yüklemelerine izin vermek.

+0

Yanıt için teşekkürler. Ana uygulamanın bir Objective-c uygulaması olduğunu unutmayın, sadece bir noktada bir java komutunu çalıştırır. Uygulama paketleri saf Java uygulamalarıdır, bu yüzden bunun için kullanabileceğim bir şey değildir. Yani muhtemelen 'rt.jar' ve Java ikili kopyalayın (ör./Usr/bin/java). İkiliyi kopyalayabilir miyim ve tüm OSX sürümlerinde çalışabilir miyim? – edwardmp

1

Sizin durumunuza göre, en iyi seçenek Java Installer Kernel'i (gerekirse Java'nın en son sürümünü yükleyen ve yükleyen küçük yükleme) dahil etmek olacaktır.

Uygulamanızdaki binary'ler tek başına paketlemeyle ilgili temel sorun temel olarak güvenliktir. Güvenlik açıkları JRE'de rutin olarak bulunur ve yamalı. Belirli bir sürümü paketlerseniz ve sürümünüzden sonra bir güvenlik açığı bulunursa, uygulamanızın yüklü olduğu makinelerin güvenliğini zayıflatacaksınız. Açıkçası bunu yapmak istemediğiniz gibi, uyumlu bir sürümün mevcut olup olmadığını algılamak veya doğru sürümü düzgün bir şekilde kurmak için mantığı dahil etmek daha iyidir. Birçok yükleyici paketi, aşağıdaki gibi seçenekleri içerir: Örneğin, OpenOffice/LibreOffice yerel uygulamalardır, ancak Java'nın bulunmasını gerektirirler ve yukarıda açıklandığı gibi benzer bir yükleme yöntemi kullanırlar. JAR dosyaları bir dizi içine paketlenmiş

Uygulama kodu, artı herhangi bir başka uygulama kaynaklarını (veri dosyalarını, yerel kütüphaneleri) JRE

Kopyala:

+0

Bu arada, Java için en son sürüm numarasını (http://java.com/en/download/installed8.jsp) edinmek için basit bir mantık ekleyebilir ve sonra bu sürümü karşıdan yükleyebilir/yükleyebilirsiniz. –

+1

Ayrıca, eğer para bir nesne değilse, Java Uygulamanızı aşağıdakileri kullanarak JRE'siz bir yürütülebilir dosya haline getirebilirsiniz: https://www.excelsiorjet.com. –

1

Her müstakil uygulama paketi aşağıdakileri içerir bu tür ikon

olarak, bu uygulama, sadece

uygulama için

Ana başlatıcısı, tek bir paket için birden fazla rampaları desteklenir

Meta tarafından kullanılacak

Birden fazla paket formatı mümkündür. Çeşitli tipte paketler için dahili destek sağlanmıştır. Kendi paketlerinizi, örneğin bir ZIP dosyası olarak uygulamanızı dağıtmak istiyorsanız, bir klasör olarak paketlenmiş bağımsız bir uygulamayı post-processing yaparak da birleştirebilirsiniz.

-

Kendi kendine yeten bir uygulama paketi var şu dezavantajları:

"indirin ve çalıştırın" kullanıcı deneyimi web dağıtım aksine

, kullanıcı deneyimi gelen uygulamayı başlatmak" ilgili değil ağ." Uygulamanın başlatılması için kullanıcının ek adımlar atması gerekebileceği "indirme, yükleme ve çalıştırma" işlemlerinden daha fazlasıdır. Örneğin, kullanıcının bir tarayıcı veya işletim sistemi güvenlik iletişim kutusunu kabul etmesi veya indirme klasöründen uygulama yükleyicisini bulup başlatması gerekebilir.JRE özel kopyası dahil olduğu için

Büyük indirme boyutu Genelde

, kendi kendine yeten bir uygulama paketlerinin büyüklüğü, bağımsız bir uygulama boyutundan daha büyüktür. Hedef platform başına

Paket

Kendi kendine yeten bir uygulama paketi platforma özel ve sadece inşa edildiği aynı sistem için üretilebilir. Windows, Linux ve OS X'de bağımsız uygulama paketleri sunmak için projenizi üç platformda da oluşturmanız gerekir.

Uygulama güncellemeleri

Web dağıtılan Java uygulamaları otomatik olarak müsait olur olmaz olarak web üzerinden uygulama güncellemeleri indirmek geliştiricinin sorumluluğundadır. Java Autoupdate mekanizması, JRE'yi her yıl birkaç kez en son güvenli sürüme güncellemeyle ilgilenir. Bağımsız uygulamalar, otomatik güncellemeler için yerleşik desteğe sahip değildir.