Eclipse'de bulunan harici kitaplıklarla bir jar nasıl oluşturulur?


89

Veritabanına (MySQL) bağlanan proje ile işim bitti. Şimdi projeyi jar olarak dışa aktarmak istiyorum. Ama dış bağımlılıklarını nasıl dahil edeceğimi bilmiyorum? Eclipse'de bunu yapmanın bir yolu var mı yoksa bunun için herhangi bir komut dosyası kullanmalı mıyım?


Uygulamayı nasıl sunmayı planlıyorsunuz? son kullanıcıya? Bir ağ / internet, disk veya flash sürücü, .. başka bir şey? Uygulama mı? GUI var mı?
Andrew Thompson

Yanıtlar:


141

Projenizi bir 'Çalıştırılabilir kavanoz' olarak dışa aktardığınızda (proje üzerinde sağ fare -> Dışa Aktar -> Çalıştırılabilir kavanoz), tüm bağımlılıkları oluşturulan kavanozda paketleme seçeneğiniz vardır. Kitaplıklarınızı dışa aktarmanın başka iki yolu da vardır (ekran görüntüsüne bakın), hangi paketleme yöntemini kullanacağınıza karar verirken lisanslara dikkat edin.

Paket kitaplıkları

'Başlatma yapılandırması' açılır menüsü, bir main(String[])yöntem içeren sınıflarla doldurulur . Kavanozu 'çalıştırdığınızda' seçilen sınıf başlatılır.

Çalıştırılabilir bir jar olarak dışa aktarma, oluşturma yolunuzdaki bağımlılıkları kullanır (Proje üzerinde sağ fare -> Oluşturma Yolu -> Oluşturma Yolunu Yapılandır ...). 'Normal' (çalıştırılamayan) bir jar olarak dışa aktardığınızda, projelerinizdeki herhangi bir dosyayı seçebilirsiniz. Proje klasörünüzde kitaplıklarınız varsa, bunları dahil edebilirsiniz ancak harici bağımlılıklar, örneğin, dahil edilemez (maven projeleri için burada arayın ).


2
@Joost: efendim, bir java uygulamasını çalıştırılabilir bir jar olarak dışa aktarmaya çalışırken başlatma yapılandırma başlığı altında herhangi bir seçenek alamıyorum. Yanlış veya eksik ne olabilir?
Rat-a-tat-a-tat Ratatouille

Eclipse main()bildiği yöntemleri listeler . Uygulamanızı bir kez çalıştırmayı deneyin (Projeye sağ tıklayın, Farklı Çalıştır, Java Uygulaması) ve ardından tekrar dışa aktarın.
Joost

Eclipse'in açıkça belirttiği gibi, bu soru için konu dışıdır. Bir cevap bulamazsanız lütfen yeni bir soru gönderin (ki bu kesinlikle bu sitede bir yerlerde)
Joost

1
Tutulma sırasında koşmaz bir kavanoz için bunu nasıl yapacağını bilen var mı? 'Gerekli kitaplıklar' ile ilgili herhangi bir seçenek yoktur.
jb1

@ jb1 Bunu hiç çözdünüz mü?
TheKingElessar

9

Bağımlılıklarını içeren bir jar oluşturmak için Export-> Java-> Runnable Jar'ı kullanabilirsiniz.

Alternatif olarak, kavanozları bir araya toplamak için fatjar eclipse eklentisini de kullanabilirsiniz.


5

Projeye sağ tıklayabilir, dışa aktar'a tıklayabilir, 'jar' yazabilir, 'Runnable JAR File Export' seçeneğini seçebilirsiniz. Orada 'Gerekli kitaplıkları oluşturulan JAR'a çıkart' seçeneğine sahipsiniz.


3

Şahsen,

Yukarıdaki cevapların hiçbiri benim için işe yaramadı, hala NoClassDefFound hataları almaya devam ettim (bağımlılıklar için Maven kullanıyorum). Benim çözümüm, "mvn clean install" kullanarak derleme yapmak ve bu komutun oluşturduğu "[project] -jar-with-dependencies.jar" ı kullanmaktı. Benzer şekilde Eclipse'de projeye -> Farklı Çalıştır -> Maven Yükle'ye sağ tıklayabilirsiniz ve bu, kavanozları hedef klasöre yerleştirecektir.


2

Bir Java web projesinin tüm JAR dosyalarını dışa aktarmak istiyorsanız, en son oluşturulan WAR dosyasını bir ZIP aracıyla (örn. 7-Zip) açın, / WEB-INF / lib / klasörüne gidin. Burada, bu proje için ihtiyacınız olan tüm JAR dosyalarını bulacaksınız ("Başvurulan Kitaplıklar" da listelendiği gibi).


0

Kaynağınızı bir akü içine aktarırken, seçeneklerden çalıştırılabilir akü seçeneğini seçtiğinizden emin olun. Ardından, tüm bağımlılık kavanozlarını paketlemek veya doğrudan jar dosyasına dahil etmek isteyip istemediğinizi seçin. Üzerinde çalıştığınız projeye bağlıdır.

Daha sonra kavanozu doğrudan java -jar example.jar ile çalıştırırsınız.


0

Tutulmada jar dosyası oluşturmak için oluşturmak istediğiniz projeye sağ tıklayın, Dışa Aktar> Java> Çalıştırılabilir Jar Dosyası'nı seçin,

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin

Pom.xml'deki tüm bağımlılıkları içeren bir kavanoz oluştur, Ancak uygulamanız için üçüncü taraf bağımlılığı kullanıyorsanız lütfen lisans sorunundan emin olun.


0

Bağımsız (Ana yöntem) bir java projesiyse, belirli bir yol değil, proje içindeki tüm kavanozları belirli bir yol koymayın, ardından projeye sağ tıklayın -> dışa aktar -> Çalıştırılabilir kavanoz -> Öğle yemeği konfigürasyonunu ve Kitaplık ellemesini seçin ardından "Gerekli kitaplıkları oluşturulan kavanozda paketle" -> Bitir radyo düğmesini seçin.

Veya

Bir web projeniz varsa, tüm kavanozları web-inf / lib klasörüne koyun ve aynı adımı yapın.

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.