İ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, mainsı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 MainClasssenin ile sınıftır mainyöntemle ve packagebir MainClass'nın paketi.
Bunu yapmadan önce .javadosyaları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
testClassbirinde tanımlanmış mı .class? .javaBu 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, TestClassbunun 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 CMDprojenizdeki [ ] komut satırına gidin ve yazın mvn packageve dizin ProjectName-0.0.1-SNAPSHOT.jaraltı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.jarve evet, programınızda herhangi bir hata yoksa bu başarıyla çalışacaktır.