Seite 1 von 1

jar Datei

Verfasst: 11. April 2008 12:11
von tester
Hallo,
bin nach dieser Anleitung vorgegangen:
A. qtjambi.jar für Windows

1. einen leeren Ordner erstellen
2. den Inhalt aus dem ../bin Verzeichnis (die dll's außer denApplikationen) hineinkopieren,
ich habe auch die Datei 'Microsoft.VC80.CRT.manifest mit hineinkopiert. '
3. das qtjambi.jar file hineinkopieren
4. das qtjambi.jar file in dieses Vezeichnis entpacken
(so dass com und META-INF auf der selben Verzeichnisebene liegen wie die dll'.s)
5. den Ordner META-INF und die Datei qtjambi.jar löschen
6. auf der gleichen Verzeichnisebene die Datei MANIFEST.MF anlegen
ich habe folgenden Eintrag für das Manifest gewählt (die Zeilennummern natürlich nicht übernehmen)
Code:

1. Manifest-Version 1.0
2. Main-Class: com.trolltech.examples.Application
3.
4. <-- zwei leerzeilen nicht vergessen

7. Aus dem Verzeichnis ein neues Jar file qtjambi.jar bauen
Bekomme Fehlermeldung wegen der Manifest-Datei (Failed to load Main...). Ich gebe meine Klasse als Main-Klasse an.

Kann mir jemand weiterhelfen?

Danke

Verfasst: 11. April 2008 18:57
von ArneStocker
Kannst Du sowohl Deinen Aufruf als auch die Fehlermeldung etwas präzisieren ?

Läuft der Aufruf, wenn Du kein neues Jar-File baust ?

Gruß Arne

Verfasst: 11. April 2008 20:48
von VuuRWerK
In der Manifest-Datei muss die Klasse stehen in welcher Deine static main Methode sich befindet.

Gut Schuß
VuuRWerK ;)

Verfasst: 11. April 2008 21:23
von tester
Hallo,
möchte nun meine Angaben präzisieren.

Habe diese Schritte durchgeführt:
1. einen leeren Ordner erstellen
2. den Inhalt aus dem ../bin Verzeichnis (die dll's außer denApplikationen) hineinkopieren,
ich habe auch die Datei 'Microsoft.VC80.CRT.manifest mit hineinkopiert. '
3. das qtjambi.jar file hineinkopieren
4. das qtjambi.jar file in dieses Vezeichnis entpacken
(so dass com und META-INF auf der selben Verzeichnisebene liegen wie die dll'.s)
5. den Ordner META-INF und die Datei qtjambi.jar löschen
6. auf der gleichen Verzeichnisebene die Datei MANIFEST.MF anlegen
Meine Manifest-Datei:

Code: Alles auswählen

Main-Class: Flieger
Class-Path: j/qtjambi.jar
Habe im Ordner j die qtjambi.jar, Flieger enthält die Main-Klasse.

Rufe dann über Console

Code: Alles auswählen

jar -cvf Flieger.jar Flieger
auf.

Wenn ich nun die jar-Datei ausfähren möchte, bekomme ich die Meldung:

Code: Alles auswählen

Failed to load Main-Class manifest attribute from C:\.......\Flieger.jar
MfG

Verfasst: 12. April 2008 09:26
von ArneStocker
.. mal ne Verständnisfrage

Hast Du die Manifestdatei in das 'qtjambi.jar' eingebaut oder in Dein 'Flieger.jar' (da gehört es nämlich rein).

So wie Du das schilderst ist es kein Problem des qtjambi.jar (das sollte nämlich nur deshalb kompakt gebaut werden, damit die ganzen nativen libs enthalten sind), sondern der Ausführbarkeit Deines Flieger.jar.

Vielleicht solltest Du erst einmal - unabhängig von dem neu gepackten qtjambi.jar - versuchen, ein ausführbares Jar File aus Deinem Flieger.jar zu machen und erst anschließend das native qtjambi.jar verwenden.

War das schon erfolgreich (siehe meine letzte Frage) ?

Gruß Arne

Verfasst: 15. April 2008 21:22
von tester
Hallo Arne,
habe jetzt mein Java-Code in die Datei Flieger1 gepackt. Da mache ich mittels javac Byte-Code draus. Wenn ich dann folgendes eingebe, funktionert es:

Code: Alles auswählen

java -classpath .;C:\qtjambi-win32-....\qtjambi.jar Flieger


Als jar kriege ich es immer noch nicht hin.
Mein Spiel ruckelt immer noch bei 100 Sternen, da wollte ich die jar-Datei auf einem anderen Rechner testen. Man hat mir vorgeschlagen, ich solle es auf einem anderen Rechner probieren, die Zuckungen könnten dann weg sein...

Es müssste ja nicht einmal eine jar-Datei sein. Ich habe versucht, die qtjambi.jar in die Flieger1 zu stecken, diese Datei auf einem anderen Rechner mittels "java -classpath .;qtjambi.jar Flieger" auszuführen -Fehlanzeige.

Für Ratschläge bin ich Dankbar.

Verfasst: 18. April 2008 07:55
von ArneStocker
Vielleicht solltest Du es mal mit fat-jar probieren, damit kann man relativ einfach ein einziges ausführbares Jar-Archiv erstellen. Das 'native' qt.jambi.jar müsstest Du dann halt auch einbinden.

Gruß Arne

Verfasst: 7. Mai 2008 23:20
von ChMaster
ArneStocker hat geschrieben:Vielleicht solltest Du es mal mit fat-jar probieren, damit kann man relativ einfach ein einziges ausführbares Jar-Archiv erstellen. Das 'native' qt.jambi.jar müsstest Du dann halt auch einbinden.
@ArneStocker
danke für die Information, ich arbeite gerade auch mit QtJambi 4.3.4 und Eclipse. Ich bin hin und weg. Hauptsächlich bleib ich bei Qt C++. :D


Nun stellt sich mir eine Frage:
Kann ich eine einzige JAR Datei erstellen die alle Bibliotheken von QtJambi (qtjambi.jar) und die nativen Bibliotheken von QtJambi entählt plus meine zusätzlichen Bibliotheken und meine HauptKlasse, so das ich nur eine JAR Datei habe und sie ausführen kann?

Edit: 22:41
Ich habe mir gerade das Preview Package von QtJambi 4.4.0 angeschaut. So wie es aussieht hat sich dadurch mein problem gelöst.

Auszug aus der changes-4.4.0_01:

Code: Alles auswählen

...


************************************************************************
 Package Structure...
************************************************************************

 - Binary package no longer contains generator or generator
   example. This is because only a package that is built from source
   can properly make use of the generator. Providing the generator in
   the binary package where it could in fact not be used made this
   less clear.

 - The binary package or a succesfully built source package now
   contains several .jar files in the root directory.

   * qtjambi-4.4.0_01.jar; The platform independent classes
   * qtjambi-$OS-$COMPILER-4.4.0_01.jar; The native libraries
   * qtjambi-examples-4.4.0_01.jar; The examples and demos
   * qtjambi-designer-4.4.0_01.jar; Classes used by Qt Designer
   
   The classes jar and native library jar files are the only two files
   needed to run Qt Jambi applications. The libraries in the bin and
   lib subdirectories are there solely for running Qt Designer, Qt
   Linguist and the other C++ tools.

...

Verfasst: 9. Mai 2008 08:22
von ArneStocker
... gefällt mir und erleichtert das deployen ungemein :-)
... wobei mich an der nächsten Release wohl am meisten das QtWebKit reizt

Gruß Arne

Verfasst: 9. Mai 2008 09:38
von ChMaster
Mich reizt das QtWebKit natürlich auch, endlich eine Engine die das entwicklen für/von HTML Seiten erleichtert und noch mehr. Mich reizt auch die QtPhonon Engine. Natürlich teste ich gerade das QtWebKit u. das QtPhonon im C++ Framework von Qt.