İki basit Java Swing dosyasından oluşan bir programım var.
Programım için nasıl çalıştırılabilir bir JAR dosyası oluşturabilirim?
İki basit Java Swing dosyasından oluşan bir programım var.
Programım için nasıl çalıştırılabilir bir JAR dosyası oluşturabilirim?
Yanıtlar:
Bir jar dosyası, basitçe java dosyalarının bir koleksiyonunu içeren bir dosyadır. Bir jar dosyasını yürütülebilir yapmak için, main
sınıfın jar dosyasında nerede olduğunu belirtmeniz gerekir . Örnek kod aşağıdaki gibi olacaktır.
public class JarExample {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
// your logic here
}
});
}
}
Sınıflarınızı derleyin. Bir kavanoz yapmak için ayrıca bir Manifest Dosyası ( MANIFEST.MF
) oluşturmanız gerekir . Örneğin,
Manifest-Version: 1.0
Main-Class: JarExample
Derlenmiş çıktı sınıfı dosyalarını (JarExample.class, JarExample $ 1.class) ve manifest dosyasını aynı klasöre yerleştirin. Komut isteminde, dosyalarınızın yerleştirildiği klasöre gidin ve jar komutunu kullanarak jar'i oluşturun. Örneğin (manifest dosyanızı jexample.mf olarak adlandırırsanız)
jar cfm jarexample.jar jexample.mf *.class
Çalıştırılabilir jarexample.jar oluşturacaktır.
jar cvfe jarexample.jar com.example.jar.JarExample *.class
In Eclipse aşağıdaki gibi basitçe yapabilirsiniz:
Java Projenize sağ tıklayın ve Dışa Aktar'ı seçin .
Seç Java -> Runnable JAR dosyası -> İleri.
Başlatma Yapılandırmasını seçin ve Ana sınıfınız olarak proje dosyasını seçin
Kaydetmek istediğiniz Hedef klasörü seçin ve Bitir'e tıklayın.
jar cvfe myjar.jar package.MainClass *.class
nerede MainClass
senin ile sınıftır main
yöntemle ve package
bir MainClass
'nın paketi.
Bunu yapmadan önce .java
dosyalarınızı dosyalara derlemeniz gerektiğini unutmayın .class
.
c create new archive
v generate verbose output on standard output
f specify archive file name
e specify application entry point for stand-alone application bundled into an executable jar file
Bu cevap, Powerslave'in başka bir cevap hakkındaki yorumundan esinlenmiştir.
Error: Could not find or load main class mtx.testClass Caused by: java.lang.ClassNotFoundException: mtx.testClass
testClass
birinde tanımlanmış mı .class
? .java
Bu komutu çalıştırmadan önce kaynak ( ) dosyalarınızı derlediğinizden emin olun . Ayrıca, genellikle sınıfınız UpperCamelCase olmalıdır, TestClass
bunun yerine olarak yeniden adlandırmayı deneyebilirsiniz .
Maven kullanıyorsanız, aşağıdakileri pom.xml dosyanıza ekleyin :
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>com.path.to.YourMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Sonra koşabilirsiniz mvn package
. Jar dosyası hedef dizinin altında yer alacaktır .
Bu soruyu cevaplamak için çok geç. Ama şimdi birisi bu cevabı arıyorsa, hiç hata yapmadan çalışmasını sağladım.
Her şeyden önce indirdiğinizden ve yola maven eklediğinizden emin olun . [ mvn --version
], yola doğru bir şekilde eklediyseniz size bunun sürüm özelliklerini verecektir.
Şimdi, aşağıdaki kodu maven projesine [ pom.xml
] ekleyin, aşağıdaki kodda , örneğin [ com.example.test.Test ] için kendi ana dosya giriş noktanızla değiştirin .
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>
your_package_to_class_that_contains_main_file .MainFileName</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Şimdi CMD
projenizdeki [ ] komut satırına gidin ve yazın mvn package
ve dizin ProjectName-0.0.1-SNAPSHOT.jar
altındaki gibi bir jar dosyası oluşturacaktır target
.
Şimdi gidin hedef dizine göre cd target
.
Son olarak yazın java -jar jar-file-name.jar
ve evet, programınızda herhangi bir hata yoksa bu başarıyla çalışacaktır.