Comment créer un fichier .jar exécutable à l'aide des commandes Linux et sans raccourci Eclipse ?
Publié: 2022-01-03
Jusqu'à présent, il était si facile pour moi de cliquer avec le bouton droit de la souris dans Eclipse IDE et de créer un fichier .jar exécutable en quelques clics simples. La semaine dernière, j'ai dû créer .jar file manually
sur mon nœud Digital Ocean sur lequel nous hébergeons généralement de nombreux services.
Il a fallu un certain temps pour créer le fichier .jar directement en utilisant uniquement des commandes, mais finalement après 10 minutes, le fichier .jar exécutable était prêt.
Si vous avez l'une des questions ci-dessous, vous êtes au bon endroit :
- Meilleure façon de créer un fichier jar en ligne de commande Linux
- Comment rendre un fichier jar exécutable sous Linux ?
- Comment compiler un fichier jar sous Linux ?
- Comment rendre un fichier JAR exécutable sous Linux ?
- Comment créer et exécuter un fichier .Jar dans un terminal Linux ?
Commençons:
Étape-1) Assurez-vous que Java est installé sur le système Linux
Si Java est déjà installé, passez directement à l' step-4
. Essayez d'exécuter la commande javac
et si vous voyez le résultat ci-dessous, il n'y a pas d'installation Java sur l'hôte.
1 2 3 4 5 6 7 8 |
root @ localhost : ~ / java / src # javac Command 'javac' not found , but can be installed with : apt install openjdk - 11 - jdk - headless apt install default - jdk apt install openjdk - 8 - jdk - headless apt install ecj |
Étape-2) Installez Java sur l'hôte Linux
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
root @ localhost : ~ / java / src # apt install openjdk-11-jdk-headless Reading package lists . . . Done Building dependency tree Reading state information . . . Done Suggested packages : openjdk - 11 - demo openjdk - 11 - source The following NEW packages will be installed : openjdk - 11 - jdk - headless 0 upgraded , 1 newly installed , 0 to remove and 92 not upgraded . Need to get 217 MB of archives . After this operation , 228 MB of additional disk space will be used . Get : 1 http : //mirrors.linode.com/ubuntu cosmic-updates/main amd64 openjdk-11-jdk-headless amd64 11.0.1+13-3ubuntu3.18.10.1 [217 MB] Fetched 217 MB in 3s ( 70.3 MB / s ) Selecting previously unselected package openjdk - 11 - jdk - headless : amd64 . ( Reading database . . . 107409 files and directories currently installed . ) Preparing to unpack . . . / openjdk - 11 - jdk - headless_11 . 0.1 + 13 - 3ubuntu3.18.10.1_amd64.deb . . . Unpacking openjdk - 11 - jdk - headless : amd64 ( 11.0.1 + 13 - 3ubuntu3.18.10.1 ) . . . Setting up openjdk - 11 - jdk - headless : amd64 ( 11.0.1 + 13 - 3ubuntu3.18.10.1 ) . . . update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jar to provide / usr / bin / jar ( jar ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jarsigner to provide / usr / bin / jarsigner ( jarsigner ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / javac to provide / usr / bin / javac ( javac ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / javadoc to provide / usr / bin / javadoc ( javadoc ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / javap to provide / usr / bin / javap ( javap ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jcmd to provide / usr / bin / jcmd ( jcmd ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jdb to provide / usr / bin / jdb ( jdb ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jdeprscan to provide / usr / bin / jdeprscan ( jdeprscan ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jdeps to provide / usr / bin / jdeps ( jdeps ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jimage to provide / usr / bin / jimage ( jimage ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jinfo to provide / usr / bin / jinfo ( jinfo ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jlink to provide / usr / bin / jlink ( jlink ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jmap to provide / usr / bin / jmap ( jmap ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jmod to provide / usr / bin / jmod ( jmod ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jps to provide / usr / bin / jps ( jps ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jrunscript to provide / usr / bin / jrunscript ( jrunscript ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jshell to provide / usr / bin / jshell ( jshell ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jstack to provide / usr / bin / jstack ( jstack ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jstat to provide / usr / bin / jstat ( jstat ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jstatd to provide / usr / bin / jstatd ( jstatd ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / rmic to provide / usr / bin / rmic ( rmic ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / serialver to provide / usr / bin / serialver ( serialver ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jaotc to provide / usr / bin / jaotc ( jaotc ) in auto mode update - alternatives : using / usr / lib / jvm / java - 11 - openjdk - amd64 / bin / jhsdb to provide / usr / bin / jhsdb ( jhsdb ) in auto mode |
Étape-3) Vérifier sur Java
Essayez simplement d'exécuter à nouveau les commandes ci-dessous et vous devriez voir les détails Java installés.

1 2 3 4 5 6 7 |
root @ localhost : ~ / crunchify / src / package # which java / usr / bin / java root @ localhost : ~ / crunchify / src / package # java -version openjdk version "11.0.1" 2018 - 10 - 16 OpenJDK Runtime Environment ( build 11.0.1 + 13 - Ubuntu - 3ubuntu3.18.10.1 ) OpenJDK 64 - Bit Server VM ( build 11.0.1 + 13 - Ubuntu - 3ubuntu3.18.10.1 , mixed mode , sharing ) |
Étape 4)
Voici la liste des commandes que vous devez exécuter pour créer des fichiers .jar exécutables.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
root @ localhost : ~ # pwd / root root @ localhost : ~ # mkdir crunchify root @ localhost : ~ # cd crunchify/ root @ localhost : ~ / crunchify # mkdir src root @ localhost : ~ / crunchify # mkdir src/package root @ localhost : ~ / crunchify # cd src/package/ root @ localhost : ~ / crunchify / src / package # vi Crunchify.java root @ localhost : ~ / crunchify / src / package # cat Crunchify.java public class Crunchify { public static void main ( String args [ ] ) { System . out . println ( "\n\nHello there... /n This is an example to create executable .jar file using only commands...\n\n" ) ; } } root @ localhost : ~ / crunchify / src / package # cd .. root @ localhost : ~ / crunchify / src # mkdir build root @ localhost : ~ / crunchify / src # mkdir build/classes root @ localhost : ~ / crunchify / src # javac -sourcepath src -d build/classes package/Crunchify.java root @ localhost : ~ / crunchify / src # cd package/ root @ localhost : ~ / crunchify / src / package # cp Crunchify.java ../ root @ localhost : ~ / crunchify / src / package # cd .. root @ localhost : ~ / crunchify / src # java -classpath build/classes/ Crunchify Hello there . . . / n This is an example to create executable . jar file using only commands . . . root @ localhost : ~ / crunchify / src # echo Main-Class: Crunchify>myManifest root @ localhost : ~ / crunchify / src # jar cfm build/Crunchify.jar myManifest -C build/classes/ . root @ localhost : ~ / crunchify / src # java -jar build/Crunchify.jar Hello there . . . / n This is an example to create executable . jar file using only commands . . . root @ localhost : ~ / crunchify / src # root @ localhost : ~ / crunchify / src # cd build/ root @ localhost : ~ / crunchify / src / build # ls -ltra total 16 drwxr - xr - x 2 root root 4096 Mar 31 00 : 48 classes drwxr - xr - x 4 root root 4096 Mar 31 00 : 52 . . - rw - r -- r -- 1 root root 830 Mar 31 00 : 52 Crunchify . jar drwxr - xr - x 3 root root 4096 Mar 31 00 : 52 . |
Et vous êtes prêt.
Comme vous le voyez ci-dessus, vous avez créé le fichier Crunchify.jar
sous le dossier /root/crunchify/src/build
.