Java Eclipse: JAR olarak dışa aktarma ile Çalıştırılabilir JAR olarak dışa aktarma arasındaki fark


88

Tutulma açısından JAR dosyası olarak dışa aktarma ile Çalıştırılabilir JAR dosyası olarak dışa aktarma arasındaki fark nedir? İkisi de koşabilir değil mi? Her birinin artıları / eksileri nelerdir?

Yanıtlar:


99

Çalıştırılabilir jar, jar çalıştırıldığında yürütülecek Main sınıfını tanımlayan bir MANIFEST.MF dosyası içerir.

Çalıştırılamayan kavanozlar, kodun yeniden kullanılması için sınıf yoluna eklenebilen sınıf kitaplıklarıdır (ayrıca manifest dosyasını içerir, ancak orada ana sınıf yoktur)


Dosyayı çalıştırılabilir jar yerine bir jar olarak dışa aktardığımızda, manifest.mf'de ana sınıfı ve kitaplık sınıf yolunu belirtmemiz gerekir.
BAY VE

20

Çalıştırılabilir bir jar dosyası, "Ana Sınıf:" bildirimini içeren gömülü bir Manifest dosyasına sahip bir jar dosyasıdır. "Ana Sınıf" tanımlanmalıdır, böylece java çalışma zamanı, jar "çalıştırıldığında" hangi sınıfı çağıracağını bilir. Bir kavanoz "Ana Sınıf:" ile bir bildirim içermiyorsa, bu bir "çalıştırılabilir kavanoz" olarak kabul edilmez - bu yalnızca bir Java kodu kitaplığıdır.

Eclipse'in kavanozu ihraç etme biçimindeki farkın bu olduğunu tahmin ediyorum, ancak% 100 emin değil.

Daha fazla bilgi için bu bağlantıya bakın: http://www.skylit.com/javamethods/faqs/createjar.html


17

Standart JAR dosyasıyla, jar çalıştırılırken komut satırında ana yöntemle sınıfı belirtmeniz gerekir. Çalıştırılabilir bir JAR ile, bu bilgiyi tutan bir bildirim dosyası vardır, böylece sadece yazabilir java -jar myRunnable.jarveya çift tıklayabilirsiniz.


0

Benim durumumda, tüm ana sınıfım ve manifest.mf'de belirtilen tüm kitaplıkların yol dizinine sahip olduğumda bir jar olarak dışa aktarırdım. Birçok uygulama aynı kitaplığı kullanıyorsa, her bir jar için paylaşılan kitaplığı dışa aktarmak gereksizdir. Kavanozun daha hızlı çalışmasını sağlar. Ancak, farklı sunucu sınıf yollarındaki yapılandırma sorunu nedeniyle çoğu zaman kitaplığa erişemez ve bu durumda, dosyanın yürütülmesini yavaşlatan ve büyük hale getiren çalıştırılabilir jar'i dışa aktarmak mantıklıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.