Aller au contenu

executer fichier .jar


Messages recommandés

Bonjour,

j'ai un logiciel ecrit en Java. Il parrait que c'est plateform indépendant..

SAM: http://sourceforge.net/project/screenshots...?group_id=59138

J'ai un dossier, avec un fichier *.jar

Comment lance-t-on un fichier .jar sous Linux?

Encore une question: le Java, est-ce sûr? Ou rien à voir avec les applets java...

merci

:cartonrouge:

Lien vers le commentaire
Partager sur d’autres sites

re, j'ai pas trop réussi :best:

la commande de lorinc me donne:

[root@localhost sam]# java -jar sam.jar

java.lang.NoClassDefFoundError: javax/swing/JFrame

at java.lang.reflect.Method.invoke0 (Method.java)

at java.lang.reflect.Method.invoke (Method.java:255)

at kaffe.jar.ExecJarName.main (ExecJarName.java:67)

at kaffe.jar.ExecJar.main (ExecJar.java:75)

[root@localhost sam]#

et savory:

[root@localhost sam]# java -classpath sam.jar org.arbo.classes.to.MainAppli

java.lang.ClassNotFoundException: org.arbo.classes.to.MainAppli

at kaffe.lang.AppClassLoader.findClass (AppClassLoader.java:296)

at java.lang.ClassLoader.loadClass (ClassLoader.java:142)

[root@localhost sam]#

Lien vers le commentaire
Partager sur d’autres sites

bon, alors je te résume le tout :

1. installe un jre qui prend en compte swing, car sinon, ton appli ne marchera pas (kaffe ne contient pas tout, prend celui d'ibm ou de sun)

2. dans un 'java -jar appli.jar' il faut mettre le suffixe (pas de completion - c'est donc le contraire, cf dessous pour comprendre pourquoi :mad2: )

3. org.arbo.classes.to.MainAppli n'est pas un truc à recopier tel quel... (comme les enfant qui écrive 'prénom' et 'nom' en haut de leur copie ... :zarb: ), cela veut dire que tu dois donner le chemin vers la classe contenant la méthode main voulue, dans la notation java : si ton programme qui s'appelle 'design' contient un package 'maison' qui contient la class 'interieur' comme main, alors le chemin est 'design.maison.interieur' et la commande 'java --classpath design.jar design.maison.interieur'

ce que tu ne peux pas deviner en général... donc, c'est marqué dans la doc :mdr2:

voilà :D

Lien vers le commentaire
Partager sur d’autres sites

Pour lancer ce genre de truc daubesque et mal codé (et en java en plus),

il faut faire un cd dans le rep contenant le jar... ?!? :chinois::D

MDR, sinon java ne retrouve pas les classes. :yes:

cd /usr/share/grosseDôôbÉcriteEnJava

puis java -jar sam.jar

Chez moi ça passe que comme ça, il veut pas entendre parler de classpath... :mad2:

Sinon, je confirme ce que dit lorinc,

pour un fichier .jar : java -jar prog.jar

pour des fichiers .class (on retire le suffixe) : java prog

Lien vers le commentaire
Partager sur d’autres sites

euh.. pourquoi daubesque et mal codé?

Je me suis un peu emporté... euh... beaucoup :mad2:

C'est juste que j'ai des soucis avec java, c'est tout le temps la même histoire :

java.io.FileNotFoundException: at java.io.blablabla.dtc.recommence:206 :yes:

Et j'ai horreur de la logique de fonctionnement :

Pourquoi enlever les suffixes lors de l'exécution par exemple ?

Et pourquoi il faut les conserver pour un jar ?

Pourquoi le fichier source doit porter exactement le même nom que la classe principale ?

...

C'était pas du tout par rapport au soft (que je ne connais pas d'ailleurs) que je disais ça mais j'ai vraiment un pb avec java...

Bref... milles excuses pour les termes que j'ai employé :D

je m'auto :chinois:

Et à propos de ton pb, tu t'en sors ?

Lien vers le commentaire
Partager sur d’autres sites

alors, pourquoi des fois un suffixe et des fois non...

en fait c'est très logique :

quand tu passe un .jar en argument, tu donne le nom d'un fichier. un jar est une archive qui contient des classes nécéssaires au lancement de l'appli. donc pour y acceder, java a besoin du nom de l'archive, et le nom, c'est vaec le suffixe : montruc.jar . En fait, tu lui dit que les classes de l'appli ne se trouvent pas dans un rep, mais dans cette archive.

par contre, quand tu lance un programme qui n'est pas dans un archive, tu ne donne pas de fichier en argument, mais un nom de class : celle sur laquelle il faut démarrer. et un nom de classe n'a pas de suffixe. ça n'a rien à voir avec le fichier contenant le code de cette classe. C'est d'ailleurs pour ça qu'il faut donner le chemin.vers.la.main.class dans la notation de java. sinon, tu mettrais dfes '/' et pas des '.' :chinois:

pour -classpath , j'ai mis un '-' en trop. en fait, les options dépendante de la jvm. sur celle d'ibm, c'est '-classpath' ou '-cp'

voilou :D

Lien vers le commentaire
Partager sur d’autres sites

Petit cours rapide sur le fonctionnement d'un outil du futur pour les jeunes oubliés : ANT

Telecharger ici http://ant.apache.org

Mettre une nouvelle variable d'environnement (dans le /etc/profile c'est plus judicieux pour les autres utilisateurs)

genre :

export ANT_HOME=/opt/java/apache-ant-1.6.2

export JAVA_HOME=/opt/java/jdk1.5

Et modifier le PATH pour beneficier des nouvelles commandes :

export PATH=$PATH:/opt/java/apache-ant-1.6.2/bin

Ensuite aller a la racine de son projet ( avec un repertoire de working un minimum normalisé on va dire :) )

On met ses arborescences de classes les sources les dossiers les properties/wsdd/xml/descripteurs/etc.. dans le repertoire $HOMEPROJ/src qui sera lui meme pris par ant apres la compil et la generation automatique du .jar de la java doc j'en passe et des meilleurs

on mettra enfin le repertoire $HOMEPROJ/lib et $HOMEPROJ/classes servant respectivement a stocker les lib necessaires au projet et a stocker les classes et l'archive generée apres coté ant on va ecrire un petit build.xml tout con dont voici la syntaxe approximative :

<project name="Mon Application" default="compile" basedir=".">

   <description>
       Ceci est un super projet de la mort qui tue :)
   </description>

<!-- set global properties for this build -->

 <property name="src"      location="src"/> 
 <property name="build"    location="classes"/>  
 <property name="html"    location="doc"/>


 <target name="init">
   <tstamp/>
   <mkdir dir="${build}"/>
   <mkdir dir="${html}"/>
 </target>

 <target name="compile" depends="init" description="Compile les sources " >
   <javac classpath=".;/opt/java/jakarta-log4j.jar;" srcdir="${src}" destdir="${build}"/>
 	<jar basedir="${build}" destfile="${build}/monAppli.jar" excludes="monAppli.jar" update="true">
 	<manifest>
 	<attribute name="Built-By" value="Savory :)"/>
 	</manifest>
 	</jar>
      <javadoc packagenames="org.*"
          sourcepath="src"
          destdir="${html}"
          author="true"
          version="true"
          use="true"
       stylesheetfile="~/style.css"
          windowtitle="java doc generée par ant;-)">
   	
   <doctitle><![CDATA[<h1>MonApplication de roxxor</h1>]]></doctitle>
   <bottom><![CDATA[<i>Copyright © 2004 Savory inc</i>]]></bottom>
 	</javadoc>
 	
 </target>

 <target name="dist" depends="compile" description="Genere le package" >
   <mkdir dir="${dist}"/>
   <jar jarfile="${dist}/MonAppli.jar" basedir="${build}"/>
   <ftp server="192.168.1.99"
        remotedir="/home/savory/working/lib"
        userid="savory"
        password="c1secret:)">
   <fileset dir="${dist}"/>
   </ftp>
 	<rexec userid="savory" password="c1secret:)" server="192.168.1.99" command="cd working/lib && java -classpath MonAppli.jar org.to.class.main.Principale"/>
 </target>

</project>

En plus j'ai meme mis une regle dist en plus pour un deploiement et lancement auto sur une autre machine :)

Voila avec cet outil tu ne te posera plus de questions pour generer une archive jar et tu pourra plus simplement t'enlever les problematiques de compilation et de deploiement, en plus tu integre ca directement dans eclipse et c'est encore meilleur :> .

edit : ( oublie des commandes lol )

Sinon pour les commandes :

Tu vas a la racine du proj ou se trouve ce fichier build.xml et la tu tape : ant

:)

Ensuite il suffit de se rappeler ou est ta classe main et ensuite java -classpath MonAppli.jar packages.java.TaClassMain

Lien vers le commentaire
Partager sur d’autres sites

sam/help/runsam.html

****** Linux ******

Running SAM from binaries

...

If you are running SAM from the binary distribution then all you have to do is open a

terminal and cd to the directory that sam was unzipped into. Once you are in

there, you can execute sam by typing the

following command (shown in red):

>java -jar sam.jar

On lit pas les docs Double_Expresso ? :zarb:

Merci lorinc pour tes explications :francais:

pareil savory, t'as l'air de connaitre un paquet d'outils pas mal (cf topic sur le décompilateur : ida)

Je t'envie, c'est ma grosse lacune : j'ai presque aucune "culture logicielle"... :byebye:

Ça viendra... :|

Merci encore à vous deux :francais:

Lien vers le commentaire
Partager sur d’autres sites

sam/help/runsam.html

On lit pas les docs Double_Expresso ? :francais:

lorinc: j'aime pas trop le java non-plus...

euh..si j'ai lu..mais pas tout :singe: .

C'est un peu comme l'installation d'un tar.gr.

c'est toujours ./configure , make , make install...

c'est seulement quand ça coince qu'on lit la doc à fond :D ...

Entout cas merci pour tout. Ce soir, j'ai assez d'infos et pistes pour mettre tout cela en marche.

Lien vers le commentaire
Partager sur d’autres sites

salut,

bon je laisse tomber SAM.

J'avais testé Sam sous Windows. Pas eu de problèmes, j'ai eu qu'à cliquer sur le fichier.

Malheureusement, je me suis retrouvé avec une petite fenêtre, me demandant les logins de ma base de données.. impossible de lancer le logiciel sans un MySQL bien configuré.

Je reviens vite sous Linux, et je décide qu'il est plus judicieux de créer une bd pour Sam, avant "d'essayer" de le lancer.

étapes:

--> créer base de données pour sam. (réussi)

--> utiliser un scripte qui crée toutes les tables dans la bd, pour que Snort y envoie les données. (réussi), faut installer configurer phpmyadmin, apache.. (réussi)

--> faire en sorte que Snort envoie les logs dans la base de données créée. (non réussi) :smack:

--> quelques essais pour lancer Sam, puisqu'il a sa bd.. (non-réussi)

Le développeur a fait du bon boulot, mais bon les tutos ne sont pas à la porté du débutant..surtout quand on a passé de nombreuses heures de configuration avant...

:freeposts::-D

merci pour votre peine...

:yes:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...