Mam program składający się z dwóch prostych plików Java Swing.
Jak utworzyć wykonywalny plik JAR dla mojego programu?
Mam program składający się z dwóch prostych plików Java Swing.
Jak utworzyć wykonywalny plik JAR dla mojego programu?
Odpowiedzi:
Plik jar to po prostu plik zawierający zbiór plików java. Aby plik jar był wykonywalny, musisz określić, gdzie main
znajduje się klasa w pliku jar. Przykładowy kod wyglądałby następująco.
public class JarExample {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
// your logic here
}
});
}
}
Skompiluj swoje zajęcia. Aby zrobić słoik, musisz również utworzyć plik manifestu ( MANIFEST.MF
). Na przykład,
Manifest-Version: 1.0
Main-Class: JarExample
Umieść skompilowane pliki klas wyjściowych (JarExample.class, JarExample $ 1.class) i plik manifestu w tym samym folderze. W wierszu polecenia przejdź do folderu, w którym zostały umieszczone pliki, i utwórz jar za pomocą polecenia jar. Na przykład (jeśli nazwiesz swój plik manifestu jako jexample.mf)
jar cfm jarexample.jar jexample.mf *.class
Utworzy wykonywalny plik jarexample.jar.
jar cvfe jarexample.jar com.example.jar.JarExample *.class
W Eclipse możesz to zrobić w następujący sposób:
Kliknij prawym przyciskiem myszy projekt Java i wybierz opcję Eksportuj .
Wybierz Java -> Runnable JAR file -> Next.
Wybierz opcję Uruchom konfigurację i wybierz plik projektu jako klasę główną
Wybierz folder docelowy, w którym chcesz go zapisać, i kliknij przycisk Zakończ.
jar cvfe myjar.jar package.MainClass *.class
gdzie MainClass
jest klasa z main
metodą i package
jest MainClass
pakiet „s.
Pamiętaj, że przed wykonaniem tej czynności musisz skompilować swoje .java
pliki do .class
plików.
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
Ta odpowiedź zainspirowana komentarzem Powerslave na temat innej odpowiedzi.
Error: Could not find or load main class mtx.testClass Caused by: java.lang.ClassNotFoundException: mtx.testClass
testClass
zdefiniowany w jednym z twoich .class
plików? Upewnij się, że skompilowałeś swoje .java
pliki source ( ) przed uruchomieniem tego polecenia. Zwykle twoja klasa powinna być UpperCamelCase, możesz spróbować zmienić jej nazwę na TestClass
.
Jeśli używasz maven, dodaj do swojego pliku pom.xml następujące polecenie :
<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>
Wtedy możesz biec mvn package
. Plik jar zostanie umieszczony w katalogu docelowym .
Na to pytanie jest już za późno. Ale jeśli teraz ktoś szuka tej odpowiedzi, udało mi się uruchomić ją bez błędów.
Przede wszystkim upewnij się, że pobierasz i dodajesz mavena do ścieżki . [ mvn --version
] poda specyfikacje wersji, jeśli poprawnie dodałeś do ścieżki.
Teraz dodaj następujący kod do projektu maven [ pom.xml
], w poniższym kodzie zastąp własnym punktem wejścia do pliku głównego, np. [ Com.example.test.Test ].
<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>
Teraz przejdź do wiersza poleceń [ CMD
] w projekcie i wpisać mvn package
i wygeneruje plik jar jako coś podobnego ProjectName-0.0.1-SNAPSHOT.jar
pod target
katalogu.
Teraz przejdź do katalogu docelowego według .cd target
Na koniec wpisz java -jar jar-file-name.jar
i tak, to powinno działać pomyślnie, jeśli nie masz żadnych błędów w swoim programie.