IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Déploiement d'un projet Java hors IDE


Sujet :

Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2021
    Messages : 12
    Points : 5
    Points
    5
    Par défaut Déploiement d'un projet Java hors IDE
    Bonsoir,

    J'ai développé un projet en Java (sous Netbeans IDE) qui fonctionne parfaitement lorsque je clique sur "run" sous Netbeans.

    Je voudrais faire en sorte que ce programme soit appelable directement depuis le bureau de mon PC, autrement dit avoir un raccourci sur le bureau qui lance le programme lorsque je clique dessus sans passer par Netbeans.

    Je ne sais vraiment pas comment faire pour pouvoir appeler le programme en dehors de l'IDE. J'ai essayé de cliquer sur les fichiers java mais je ne peux que les éditer et pas les exécuter.

    Je vous remercie infiniment si vous pouvez m'aider.

    Bonne soirée.

    André

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    le bouton run() de l'IDE c'est pour que le développeur voit ce que ça fait en faisant tourner son code. Une application qui peut être lancée sur l'ordinateur c'est l'étape suivante.

    Il faut commencer par empaqueter ton programme dans un unique fichier .jar, construit pour être exécutable. C'est honnêtement bien plus simple à faire en utilisant maven ou gradle, donc tu peux éventuellement faire quelques recherches sur comment faire des jar exécutables avec maven ou gradle.

    Une fois que tu as ton ficher .jar, tu peux le mettre n'importe où sur le disque dur. Ensuite, deux possibilités :

    - ou bien l'ordinateur sait que quand on "cherche à ouvrir" un fichier .jar, le but est de considérer que ce .jar est exécutable, et de lancer la commande java qui va lancer ce jar exécutable. Il suffit alors de créer une icône de raccourci vers ce .jar, et cela lancera automatiquement le programme.

    - ou bien c'est pas le cas. Dans ce cas il faut créer une icône d'exécution qui exécute "chemin\vers\java.exe" -jar "chemin\vers\le\programme.jar"
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    PS : penser a signer numériquement le JAR, si possible.

    Parmi les nombreuses solutions possibles une fois le JAR obtenu :
    • Créer un lanceur natif avec l'outil jpackage fourni dans le JDK. C'est pas bien complique et ça marche bien. La JVM est embarquée dans les répertoires de l'app.
    • Utiliser des lanceurs natifs pré-existants tels que Launch4J (https://launch4j.sourceforge.net/) ou d'autres. Juste penser si tu télécharges un exec lanceur déjà précompilé d'un site lambda penser a le scanner avec l'antivirus / antispyware avant de l'utiliser. En général, ce genre de solution nécessite une JVM présente sur le système par contre.
    • Compiler nativement le programme avec GraalVM. Note : toujours en développement, peut ne pas fonctionner correctement si application graphique ou demande une procédure plus complexe que la compilation native basique. Pas besoin de JVM ici, l'app est native.


    Hormis la compilation native par GraalVM, ces lanceurs natifs ont pas besoin d’être recrées a chaque fois. Lors des maj de l'app, il suffit juste de remplacer l'ancien JAR par le nouveau.

    Puis :
    1. signer numériquement le lanceur, si possible.
    2. Créer un installeur ou un fichier MSI qui se chargera d'installer le programme et de créer le raccourci utilisateur (et aussi de la désinstallation) : NSIS (https://nsis.sourceforge.io/Main_Page), WiX (https://wixtoolset.org/), Inno Setup (https://jrsoftware.org/isinfo.php), etc.
    3. signer numériquement l'installeur, si possible.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2021
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2021
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Bonsoir,

    Merci pour vos réponses.

    En fait, ce que je souhaite c'est que le programme soit utilisable sur plusieurs ordinateurs. Ainsi, je veux que chaque ordi soit capable de le lancer, j'imagine donc qu'il faut utiliser la deuxième méthode que @thelvin a présenté, à savoir "chemin\vers\java.exe" -jar "chemin\vers\le\programme.jar"

    Sauf que est-ce que ca fonctionnera sur chaque ordinateur directement en transmettant le .jar ou est-ce qu'il faut que chaque ordinateur ait un compilateur java ou autre chose ?

    Merci encore par avance.

    Bonne soirée

    André

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Double cliquer sur un JAR nécessite d'avoir Java localement installé (ou accessible via un disque réseau) sur la machine. Il te faudra également faire attention aux conflits de version si plusieurs JVMs sont présentes sur le système. Cette solution ne fonctionnera pas non plus si un manager d'archive a soudainement décidé qu'il allait de lui-même gérer les fichiers JAR (qui ne sont que des fichiers ZIP).

    La solution avec jpackage + installeur embarque une JVM privée dans l'application, tu as donc juste besoin d'installer l'application et c'est tout...

    Pour les autres lanceurs, fichier BAT compris, c'est selon le logiciels, certains nécessitent une JVM dans le système, d'autres permettent de spécifier une JVM privée dans le répertoire de l'application.

    Note : en cas de lancement par BAT, une boite de commande qu'il ne faut absolument pas fermer sous peine de terminer l'application sera affichée à l'écran.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Création et déploiement d'un projet Java EE avec netbeans
    Par methodman225 dans le forum NetBeans
    Réponses: 6
    Dernier message: 05/06/2014, 18h04
  2. Déploiement d'un projet Java sur NetBeans
    Par Invité dans le forum NetBeans
    Réponses: 2
    Dernier message: 10/07/2012, 10h16
  3. [Eclipse] Déploiement d'un projet Java Web
    Par Invité dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 22/05/2009, 10h38
  4. Idée projet java
    Par setto dans le forum Sujets
    Réponses: 4
    Dernier message: 19/02/2009, 12h52
  5. idée mini projet java J2EE
    Par cotede2 dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 13/10/2008, 17h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo