Jump to content

executer fichier .jar


Recommended Posts

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]#

Link to comment
Share on other 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

Link to comment
Share on other sites

Merci lorinc,

tu m'éclaires un peu plus. :incline:

Bah! quand je lis: org.arbo.classes.to.MainAppli , il ne me vient pas à l'idée qu'il faut changer quelque chose.. je connais pas dutout le Java, je m'y mettrai un jour, pour avoir un minimum de connaissances là dessus.

bone journee

Link to comment
Share on other 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

Link to comment
Share on other 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 ?

Link to comment
Share on other 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

Link to comment
Share on other 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

Link to comment
Share on other 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:

Link to comment
Share on other 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.

Link to comment
Share on other 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:

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...