Application SWT autonome - manifest, lib, classpath...?

Application SWT autonome - manifest, lib, classpath...? - Java - Programmation

Marsh Posté le 28-02-2005 à 08:31:27    

bonjour tout le monde !!
 
j'ai écrit un bout d'appli avec SWT, et je voudrais pouvoir la lancer en dehors de Eclipse, parce que sinon, l'intéret est limité :)
 
j'ai exporté l'applivers un jar avec un manifest qui pointe vers mon main().
j'ai mis les jar swt requis dans un répertoire lib, avec les bibliothèques systèmes de SWT.
 
voilà le manifest :

Code :
  1. Manifest-Version: 1.0
  2. Main-Class: fr.cuefa.test.Main


 
voilà l'archi de mon répertoire :

Code :
  1. maquette.jar
  2. images:
  3. cover.jpg*
  4. lib:
  5. libswt-atk-gtk-3063.so*  libswt-gnome-gtk-3063.so*  libswt-mozilla-gtk-3063.so*  swt.jar          swt-pi.jar
  6. libswt-awt-gtk-3063.so*  libswt-gtk-3063.so*        libswt-pi-gtk-3063.so*       swt-mozilla.jar
  7. properties:
  8. ApplicationRessource.properties*


 
et quand je fais un truc genre

Code :
  1. java -cp lib -Djava.library.path=lib -jar maquette.jar


j'obtiend un magnifique

Code :
  1. Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/graphics/Device
  2.         at fr.cuefa.djlr.maquette.Main.main(Main.java:24)


 
Où est-ce que j'ai pas bon ? qu'est-ce que j'ai raté ?
Merci pour les coups de mains !


Message édité par brisssou le 28-02-2005 à 08:32:19
Reply

Marsh Posté le 28-02-2005 à 08:31:27   

Reply

Marsh Posté le 28-02-2005 à 12:45:37    

-cp et -jar marche pas ensemble il me semble
essaie de faire un export CLASSPATH=./lib puis java -Djava.library.path=lib -jar maquette.jar


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-03-2005 à 08:41:47    

merci de ton aide, mais ça n'a pas marché.
Par contre, j'ai regardé le manifest de docman, qui est aussi en swt et voilà ce que j'y vois :

Citation :

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.3  
Created-By: Lars Trieloff
Main-Class: net.trieloff.docman.gui.DocmanWindow
Class-Path: lib/xercesImpl.jar lib/xmlParserAPIs.jar lib/avalon-framew
 ork-cvs-20020806.jar lib/xincluder.jar lib/resolver.jar lib/batik.jar
  lib/xalan-2.4.1.jar conf/ lib/fop.jar lib/jimi.jar lib/swt/jface.jar
  lib/swt/runtime.jar lib/swt/boot.jar lib/swt/workbench.jar lib/swt/s
 wt.jar lib/swt/swt-pi.jar lib/jedit.jar lib/Code2HTML.jar lib/jaxen-f
 ull.jar lib/saxpath.jar lib/saxon.jar lib/saxon-addon.jar  
 


j'ai essyé de faire pareil... mais sans succès... je commence à crisser là...
je vais fouiller un peu plus le manifest, mais ça reste un peu obscure pour moi...

Reply

Marsh Posté le 01-03-2005 à 10:54:00    

bon, j'ai essayé sans exporter dans un jar, et ça fonctionne :

Citation :

java -classpath lib/swt.jar:lib/swt-pi.jar:. -Djava.library.path=lib/ fr.cuefa.djlr.maquette.Main


et ça marche avec cette architecture de répertoires :

Code :
  1. fr:
  2. cuefa/
  3. images:
  4. cover.jpg
  5. lib:
  6. libswt-atk-gtk-3063.so*    libswt-mozilla-gtk-3063.so*  libXm.so.3
  7. libswt-awt-gtk-3063.so*    libswt-pi-gtk-3063.so*       swt.jar
  8. libswt-gnome-gtk-3063.so*  libXm.so.2                   swt-mozilla.jar
  9. libswt-gtk-3063.so*        libXm.so.2.0.1               swt-pi.jar
  10. properties:
  11. ApplicationRessource.properties


 
je vais voir pourquoi le jar reffuse de tourner...


Message édité par brisssou le 01-03-2005 à 10:54:51
Reply

Marsh Posté le 01-03-2005 à 11:20:55    

the real moins moins a écrit :

-cp et -jar marche pas ensemble il me semble
essaie de faire un export CLASSPATH=./lib puis java -Djava.library.path=lib -jar maquette.jar


euh oui forcement CLASSPATH=./lib ça peut pas marcher, tu dois spécifier chaque jar [:kiki] sorry


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-03-2005 à 13:34:54    

même en spécifiant chaque jar, ça n'a pas voulu marcher...
 
du coup j'ai grugé :)
j'ai fait un script ant (mon premier :)), et là, hop! ça roule avec

Citation :

java -Djava.library.path=lib -jar DJLR.jar

:  

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project name="DJLRUserGUI" default="build" basedir=".">
  3. <target name="build" depends="copy">
  4.  <jar destfile="build/DJLR.jar" basedir="bin" compress="yes">
  5.   <manifest >
  6.    <attribute name="Class-Path" value="lib/swt.jar lib/swt-pi.jar" />
  7.    <attribute name="Main-Class" value="fr.cuefa.djlr.maquette.Main" />
  8.   </manifest>
  9.  </jar>
  10. </target>
  11. <target name="copy">
  12.  <copy todir="build/properties">
  13.   <fileset dir="properties" />
  14.  </copy>
  15.  <copy todir="build/lib">
  16.   <fileset dir="lib" />
  17.  </copy>
  18.  <copy todir="build/images">
  19.   <fileset dir="images" />
  20.  </copy>
  21.  <copy todir="build" file="run.sh"/>
  22. </target>
  23. </project>

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed