Temelde fark yoktur. Bir JAR bir demet ve bir paket bir JAR'dir, formatlar aynıdır. Bununla birlikte, faydalı paketi, OSGi çerçevesi kendi bildirimlerinde OSGi meta verileri gerektirir; böylece bir OSGi çerçevesi, gruplar arasındaki sınıfların görünürlüğünü yönetebilir. Bu meta veriler içermeyen bir JAR yalnızca görünmez sınıflar içerecektir, diğer gruplardan herhangi bir sınıf göremedi ve herhangi bir şekilde başlatılamazdı. İçe Aktarım Paketi bildirim üstbilgisi, paket için hangi paketlerin görünür hale getirileceğini belirtir ve Dışa Aktarım Paketi, paket içindeki paketleri diğerlerine görünür kılınması gerekenleri tanımlar. Diğer başlıklar ek özellikler sağlar.
Geleneksel sınıf yolu ile her şey paylaşılır ve globaldir, sınıf yolunda aynı sınıfa sahip olmak iki kez işaretlenmez, biri yok sayılır. OSGi ile olan en önemli fark, bir JAR'ın artık tümüyle özel olması, manifestte meta verilerin eklenmesi, onu diğer paketlerle güvenle paylaşabilecek bir paket haline getiriyor. OSGi, ihlallerin önceden tespit edildiğinden emin olur.
Temizle. Teşekkür ederiz :) – Amrit
Yani, bir JavaEE uygulamasında bir kavanoz yerine bir paket kullanılabilir mi? – adbdkb
evet, normal bir JAR. Bununla birlikte, bir JavaEE uygulamasında elbette bir JAR olarak davranacak ve bir paket olarak değil. –