Eclipse'te otomatik olarak bir JAR'a proje oluşturun


171

Java projemi otomatik olarak bir JAR'da tutmak istediğim bir Eclipse projem var. Projeyi bir JAR'a aktarma seçeneğim olduğunu biliyorum; sağ tıklama yaparsam; ama gerçekten aradığım şey, Eclipse gibi otomatik olarak bir proje .classdosyaları oluşturur ve bunları hedef klasöre koyar; ayrıca otomatik olarak bir JAR oluşturmalı ve en son JAR'ı bazı yerlere veya belirli bir konuma kopyalamalıdır.

Eclipse'i JAR'ları otomatik olarak oluşturacak şekilde yapılandırma seçeneği var mı?

Sadece erkeklere açıklık getirmek için, soruma cevap verecek kadar sabırlı; ANT'ye çözüm olarak bakmıyorum; Ben zaten kullandığım gibi, ama ne zaman tabanlı tetikleyici veya değişiklik ile derhal inşa otomatik olarak başlatılan bir şey istiyorum.


1
Kişisel fikrim: Eclipse'nin maven entegrasyonu olan m2e'yi kullanın, böylece yapının bir parçası olarak sizin için bir kavanoz çıkarır. Son zamanlarda Eclipse'yi Maven olmadan kullanmaya çalıştım ve temel Java oluşturucusunun ne kadar ilkel olduğuna inanamıyorum.
Craig Ringer

1
2018 için IDE'ye özgü işlevler yerine bir oluşturma aracı kullanın. Maven size IDE bağımsızlığı ve komut satırı desteği satın alıyor.
Thorbjørn Ravn Andersen

@Craig Ringer - bunun nasıl yapılacağına dair bir bağlantı var mı?
nsandersen

Yanıtlar:


27

Apache Ant'e göz atın

Tutulma ile otomatik yapılar için Ant'i kullanmak mümkündür, işte nasıl


Ben zaten yapıları yapmak ve Jar yapmak için Apache karınca kullanıyorum. Ama gerçekten aradığım şey apache karınca ve doğrudan tutulma kullanarak bir yol oldu.
Priyank

Özür dilerim, daha önce bağlantıdaki makaleden geçmedim. Gerçekten ihtiyacım olan şeyden bahsediyor. Teşekkürler.
Priyank

1
Tarafından cevap Konrad OP aradığını daha yakından eşleşir.
lycono

lycono, katılmıyorum - OP kavanozun güncel tutulmasını istedi ve bir jar dosyasını dışa aktarmak bu sorunu çözmeye çalışmaz.
James Moore

1
Temmuz 2011'de @Peter tarafından atıfta bulunulan makale, bir jar dosyasının nasıl oluşturulacağı hakkında konuşmuyor.
James Moore

288

Bir .jardescdosya istiyorsunuz . Otomatik olarak başlamazlar, ancak 2 tıklama içinde.

  1. Projenize sağ tıklayın
  2. Seç Export > Java > JAR file
  3. Eklenen dosyaları ve JAR ad çıktısını seçin, ardından Next
  4. "Bu JAR'ın açıklamasını çalışma alanına kaydedin" seçeneğini işaretleyin ve yeni .jardescdosya için bir ad seçin

Şimdi, tek yapmanız gereken .jardescdosyanızı sağ tıklayıp seçmektir Create JARve aynı noktada dışa aktarır.


Bu cevabın aylar önce daha fazla oy (veya en iyi cevap) almamış olması üzücü. Oh, şimdi Konrad gitti.
Dan Rosenstark

25
Eclipse Galileo'da, 1. adımınızı File -> Export -> Java -> JAR dosyası ile değiştirmek zorunda kaldım.
Matt Huggins

9
'Sağ tıklama -> JAR Oluştur' adımını otomatikleştirmenin bir yolu var mı?
Asaf

4
'Sağ tıklama -> JAR Oluştur' adımını otomatikleştirmenin veya bir tuş kombinasyonuna bağlamanın bir yolu var mı?
Pacerier

5
Tam olarak oluşturmak için "Dışa Aktar ... -> Java -> Çalıştırılabilir JAR dosyası" kullanıyorum.
TedTrippin

70

Bir Ant dosyası oluşturun ve Eclipse'e dosyayı oluşturmasını söyleyin. Sadece iki adım vardır ve her biri aşağıdaki adım adım talimatlarla kolaydır.


Adım 1 Bir build.xml dosyası oluşturun ve paket gezginine ekleyin:

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="." includes="*.class" />
  </target>
</project>

Eclipse aşağıdaki ekran görüntüsüne benzemelidir. Build.xml'deki Karınca simgesini not alın. Eclipse Project'te Build.xml

Adım 2 Projedeki kök düğümü sağ tıklatın. - Özellikler'i seçin - Oluşturucular'ı seçin - Yeni'yi seçin - Karınca Oluşturmayı Seçin - Ana sekmede, bin klasöründeki build.xml dosyasının yolunu tamamlayın .

Karınca oluşturucu yapılandırması Derleme adımı - Hedefler Sekmesi

Çıktıyı Kontrol Edin

Eclipse çıktı penceresi (Console adlı) bir derlemeden sonra aşağıdakileri göstermelidir:

Buildfile: /home/<user>/src/Test/build.xml

CreateJar:
         [jar] Building jar: /home/<user>/src/Test/Test.jar
BUILD SUCCESSFUL
Total time: 152 milliseconds

EDIT: @yeoman ve @betlista tarafından yapılan bazı yararlı yorumlar

@yeoman Sanırım çoğu kişi paketleri kullandığından ve böylece sınıf dosyaları için özyinelemeli arama yapmak düz dahil etmekten daha mantıklı olduğundan, doğru içerme /.class değil, * .class olacaktır.

@betlista src klasöründe build.xml olmamasını öneriyorum


2
Evet, derleme adımı için hedefleri aşağıdaki gibi seçebilirsiniz: Temiz, Manuel Derleme, Otomatik Derleme ve Temizleme Sırasında. Auto Build size ne istediğinizi vermeli :)
Thomas Bratt

8
Her ikisini de denedikten sonra, bu çözüm Konrad'ınkinden çok daha iyi görünüyor. Yapı dosyanızdaki bazı yolları manuel olarak bulmanızı gerektirir, ancak otomatik oluşturmaya izin verir (2 tıklama yerine) ve kolay özelleştirmeye izin verir (örneğin, derlemeden sonra kavanozu kopyalayın). Yapı dosyası kökte olduğunda ve birden fazla iç içe paket düzeyine sahipken bir kavanoz dosyası nasıl oluşturulacağı aşağıda açıklanmıştır:<jar jarfile="dist/mypackage.jar" basedir="bin/" includes="**/*.class" />
worldsayshi

3
+1 Bu kabul edilen cevap değil, en çok oylanan cevap bile değil mi?
Juan Garcia

2
Çok teşekkür ederim. build.xmlSrc klasöründe olmamak için tavsiye ediyorum , ama geri kalanı iyi çalışıyor, şaşırtıcı!
Betlista

1
Çoğu kişi paketleri kullandığından ve böylece sınıf dosyaları için özyinelemeli arama düz dahil etmekten daha mantıklı olduğundan , doğru içerme / .class, * .class değil. O zamana kadar + 1'imi kaldıracağım çünkü cevap genellikle durduğu gibi çalışmıyor.
yeoman

13

Bu, tutulmada özel bir Oluşturucu tanımlayarak mümkündür (Peter'ın cevabındaki bağlantıya bakın). Ancak, projeniz çok küçük olmadığı sürece, çalışma alanınızı kabul edilemez şekilde yavaşlatabilir. Sınıf dosyaları için otomatik oluşturma aşamalı olarak gerçekleşir, yani yalnızca bir değişiklikten etkilenen sınıflar yeniden derlenir, ancak her değişiklik kaydettiğinizde JAR dosyasının tamamen yeniden oluşturulması ve kopyalanması gerekir.



1

Yukarıdaki Thomas Bratt'ın yanıtını kullanarak build.xml dosyanızın düzgün yapılandırıldığından emin olun:

<?xml version="1.0" ?>
<!-- Configuration of the Ant build system to generate a Jar file --> 
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
        <jar jarfile="Test.jar" basedir="bin/" includes="**/*.class" />
  </target>
</project>

( Çift yıldız işaretine dikkat edin - derlemenin tüm alt dizinlerde .class dosyalarını aramasını söyleyecektir.)


0

2 proje aynı harici araç oluşturma adına sahip olamayacağından bir oluşturucu başlatıcısı oluşturmak bir sorundur. Her ad benzersiz olmalıdır. Şu anda yapımı otomatikleştirmek ve JAR'ı harici bir konuma kopyalamak için bu sorunla karşı karşıyayım.

IBM'in Zip Builder'ını kullanıyorum, ancak bu sadece bir yardım ama gerçek olanı yapmıyor.

İnsanlar IBM ZIP Creation eklentisini kullanmayı deneyebilir. http://www.ibm.com/developerworks/websphere/library/techarticles/0112_deboer/deboer2.html#download

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.