Déploiement java

Résolu
plop3000 Messages postés 135 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 avril 2012 - 14 avril 2008 à 15:18
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 17 avril 2008 à 10:52
Bonjour,

Dans le cadre d'un projet, j'ai développé une application. Cette application utilise entre autre un fichier de configuration. Pour le déploiement de l'application je voudrais donc avoir quelquechose du genre :

    - dossierDeMonAppli
              > monAppli.jar
              > monFichierDeConfig.ini

Comment puis je faire pour créer une installation propre ?

Merci d'avance

9 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
14 avril 2008 à 15:54
Salut:

Utilises ANT pour automatiser toutes ces tâches.
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
14 avril 2008 à 20:52
Salut,

+1 pour ANT (il est très pratique pour compiler, générer un jar, créer une archive zip, exécuter une application (un script,  ou autre), etc...)

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
3
plop3000 Messages postés 135 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 avril 2012 1
15 avril 2008 à 08:50
Ok merci pour vos réponses, je vais tester ça
0
plop3000 Messages postés 135 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 avril 2012 1
16 avril 2008 à 11:54
Bonjour,

J'ai donc testé ANT, ça fonctionne bien, j'ai réussi à faire ce que je voulais mais j'ai encore un petit souci et je ne sais pas comment le régler :

Grace à ANT, j'ai généré un JAR de mon application. Mais mon appli se sert elle meme d'autres JAR et je ne sais pas comment faire pour que gérer ces dépendances. Y a t il une technique avec ANT ?

J'ai essayé de mettre les jar dont se sert mon appli dans le même dossier que mon appli mais ça ne fonctionne pas, j'obtiens une exception NoClassDefFound qui pointe sur une des classes du jar dont dépend mon appli.

Une idée ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
16 avril 2008 à 12:24
Salut,

recréer le manifest de ton jar en ajoutant les dépendances dans le champ Class-Path.

exemple :
<jar jarfile="le nom du jar" basedir="./bin">
  <manifest>
   
   
  </manifest>
</jar>

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
plop3000 Messages postés 135 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 avril 2012 1
16 avril 2008 à 17:09
Voila ce que j'ai dans mon fichier build.xml :

   
       
       
       
       
       
       
   
        <target name="init">
            <!-- Create the build directory structure used by compile -->
            <mkdir dir="${build.dir}" />
          </target>
   
          <target name="compile" depends="init">
            <!-- Run javac to compile the source files -->
            <javac srcdir="${src.dir}" destdir="${build.dir}">
              <classpath>
                <!-- Include all jar files  -->
                <fileset dir="import">
                     
                </fileset>
              </classpath>
            </javac>
          </target>
        
   
        <!-- target lancée comme suit : "ant tacheJSA" dans la console -->
        <target name="tacheJSA" depends="compile">
           
            <!-- création d'un répertoire pour le JAR -->
            <mkdir dir="${dist.dir}"/>
            <mkdir dir="${dist.dir}/${ressources.dir}"/>
            <mkdir dir="${dist.dir}/${gram.dir}"/>
           
            <!-- Copie des fichiers de ressources nécessaires-->
            <copy file="ressources/config.ini" todir="${dist.dir}/${ressources.dir}"/>
            <copy file="ressources/rules.xml" todir="${dist.dir}/${ressources.dir}"/>
            <copy file="ressources/mots_clefs.xls" todir="${dist.dir}/${ressources.dir}"/>
           
            <!-- Copie des fichiers grammaires-->
            <copy file="ressources/DmlSQL2.g" todir="${dist.dir}/${gram.dir}"/>
            <copy file="ressources/SqlSQL2.g" todir="${dist.dir}/${gram.dir}"/>
            <copy file="ressources/DmlSQL2ImpTokenTypes.txt" todir="${dist.dir}/${gram.dir}"/>
            <copy file="ressources/SqlSQL2ImpTokenTypes.txt" todir="${dist.dir}/${gram.dir}"/>
           
            <!-- création du JAR -->
            <jar destfile="${dist.dir}/${ant.project.name}.jar" basedir="${build.dir}">
                    <manifest>
                        <!-- on indique la classe principale du JAR-->
                       
                        <!-- on indique les jar dont on a besoin-->
                       
                    </manifest>
            </jar>   
       
        </target>
   

Mais dès que je lance l'appli via la commande "java -jar projet.jar" il me sort des erreurs de classNotFound en pointant sur une des classes des jar dont dépend mon projet.

Please help...
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
16 avril 2008 à 17:38
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" />
<title>
</title>
<meta name="GENERATOR" content="OpenOffice.org 2.4 (Linux)" />
<style type="text/css">
<!--
@page { size: 21cm 29.7cm; margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style>
Salut,

met des espaces avant et
après les virgules dans le champs class-path.
Tel que tu as
renseigné le champ class-path les jar sont au même niveau que le
jar de l'application.
Si ce n'est pas le cas et qu'ils sont dans
un répertoire 'lib' (par exemple) il faut que tu mettes :

ATTENTION
: ne met pas d'anti slash, même si tu es sous windows













------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
plop3000 Messages postés 135 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 7 avril 2012 1
17 avril 2008 à 10:38
De mieux en mieux, maintenant lorsque je lance mon jar, celui ci ne trouve pas ma classe main !!! Je vois pas le problème...

Ma classe main est pourtant JSAWithParameters qui se trouve dans le package main... ANT parvient à me créer mon JAR sans erreurs mais au moment où je lance le JAR j'ai l'erreur suivante :

"Exception in thread "main" java.lang.NoClassDefFoundError : main/JSAWithParameters
Caused by: java.lang.ClassNotFoundException : main.JSAWithParameters

<?xml version="1.0" encoding="UTF-8"?>

   
       
       
       
       
       
       
   
        <target name="init">
            <!-- Create the build directory structure used by compile -->
            <mkdir dir="${build.dir}" />
          </target>
   
          <target name="compile" depends="init">
            <!-- Run javac to compile the source files -->
            <javac srcdir="${src.dir}" destdir="${build.dir}" />
          </target>
        
   
        <!-- target lancée comme suit : "ant tacheJSA" dans la console -->
        <target name="tacheJSA" depends="compile">
           
            <!-- création d'un répertoire pour le JAR -->
            <mkdir dir="${dist.dir}"/>
            <mkdir dir="${dist.dir}/${ressources.dir}"/>
            <mkdir dir="${dist.dir}/${gram.dir}"/>
           
            <!-- Copie des fichiers de ressources nécessaires-->
            <copy file="ressources/config.ini" todir="${dist.dir}/${ressources.dir}"/>
            <copy file="ressources/rules.xml" todir="${dist.dir}/${ressources.dir}"/>
            <copy file="ressources/mots_clefs.xls" todir="${dist.dir}/${ressources.dir}"/>
           
            <!-- Copie des fichiers grammaires-->
            <copy file="ressources/DmlSQL2.g" todir="${dist.dir}/${gram.dir}"/>
            <copy file="ressources/SqlSQL2.g" todir="${dist.dir}/${gram.dir}"/>
            <copy file="ressources/DmlSQL2ImpTokenTypes.txt" todir="${dist.dir}/${gram.dir}"/>
            <copy file="ressources/SqlSQL2ImpTokenTypes.txt" todir="${dist.dir}/${gram.dir}"/>
           
            <!-- création du JAR nommé JSA-->
            <jar destfile="${dist.dir}/${ant.project.name}.jar" basedir="${build.dir}">
                    <manifest>
                        <!-- on indique la classe principale du JAR-->
                       
                        <!-- on indique les jar dont on a besoin-->
                       
                    </manifest>
            </jar>
       
        </target>
   
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
17 avril 2008 à 10:52
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" />
<title>
</title>
<meta name="GENERATOR" content="OpenOffice.org 2.4 (Linux)" />
<style type="text/css">
<!--
@page { size: 21cm 29.7cm; margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style>
Salut,

tu as regardé si dans le
jar tu as bien tout, et que son manifest soit bien renseigné
?

ARRRRRRRGGGGGG, c'est quoi ce C: dans ton Class-Path
?????????????????? jamais tu fais ça..... de plus java c'est
portable hors tes clients ne sont pas forcément TOUS sous windows
donc ton C:............... et même si tu brides java sous windows,
jamais tu install des fichiers à la racine du DD d'un client... au
minimum tu fais un répertoire lib (ou autre) dans ton projet et tu y
colle le tout..... une application n'est pas censé s'installer à la
sauvage en mettant des fichiers partout... elle est plutôt censé
rester dans son sandbox.











------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
Rejoignez-nous