[gelöst]fat jar und qt jambi 4.4

Alles zum Qt Framework für Java
Antworten
thalro
Beiträge: 11
Registriert: 7. Juli 2007 17:18

[gelöst]fat jar und qt jambi 4.4

Beitrag von thalro » 6. August 2008 15:59

Hallo,

ich habe bis vor kurzem mit eclipse und jambi 4.3 gearbeitet. unter dieser konfiguration konnte ich problemlos mit fat jar ausführbare jars exportieren.

da das deployment unter jambi 4.4 angeblich einfacher ist, habe ich mir das heruntergeladen und installiert. in eclipse funktioniert alles nach wie vor, aber wenn ich fat jars exportiere funktinieren diese nicht mehr und sagen "could not faind the main class".
ich bin ziemlich ratlos, da ich alles so gemacht habe wie mit 4.3.
an meinem code liegts auch nicht, da ich die beispielprogramme so auch nicht zum laufen kriege.

fat jar scheint auch die jars von jambi 4.4 zu finden (die korrekten dateien sind unter external libraries angegeben), aber es tut irgendwie nicht.

kann mir irgenjemand helfen?

danke,

t.
Zuletzt geändert von thalro am 12. August 2008 17:45, insgesamt 1-mal geändert.

ArneStocker
Beiträge: 300
Registriert: 3. November 2004 17:15
Wohnort: Berlin

Beitrag von ArneStocker » 7. August 2008 08:56

Qtjambi benötigt jeweils native libraries, diese befinden sich seit qt4.4 immer in dem lokale (für die Plattform bestimmten) qt...bla.jar. Zur Laufzeit werden dann die darin enthaltennen dlls (für Windows) oder so. für Linux in ein temporäres Verzeichnis entpackt.

Offensichtlich funktioniert das in Verbindung mit Fat-Jar nicht. Du kannst die qt- [native] - jars aber auch selbst entpacken und deren Inhalt wie gewohnt in eine fat-jar integrieren.

Gruß Arne

thalro
Beiträge: 11
Registriert: 7. Juli 2007 17:18

Beitrag von thalro » 7. August 2008 21:48

Danke,

das probier ich mal.

t.

thalro
Beiträge: 11
Registriert: 7. Juli 2007 17:18

Beitrag von thalro » 8. August 2008 02:35

Hallo Arne,

ich kriege das leider immernoch nicht hin. Ich bin relativ neu bei Java.
Ich habe auch deinen anderen beitrag gelesen:
http://www.qtforum.de/forum/viewtopic.p ... hlight=jar

wie ist das denn jetzt genau bei 4.4?

ich habe versucht, die jambi jars zu entpacken, wusste dann aber nicht genau, welche dateien ich wie einbinden soll.

du sagst, man müsse jetzt eigentlich nur noch die beiden jars in den classpath stellen.

Ich hab versucht das calculator beispiel von qt zu exportieren.
ich habe also eine manifest datei geschrieben:

Code: Alles auswählen

Manifest-Version: 1.0
Main-Class: arg.Calculator
Class-Path: qtjambi-4.4.0_01 qtjambi-win32-msvc2005-4.4.0_01

in dem verzeichnis befindet sich die klasse calculator im unterverzeichnis arg. die bwiden jambi jars sind direkt ins verzeichnis kopiert.

dann habe ich gesagt:

Code: Alles auswählen

 # jar -mcf manifest.mf test.jar qtjambi-4.4.0_01 qtjambi-win32-msvc2005-4.4.0_01 arg/calculator.class
ich habe alle möglichen kombinationen ausprobiert die mir eingfallen sind. jedes mal kriege ich "could not find the main class. program will exit".

ich wäre dir sehr dankbar, wenn du mal kurz alle schritte (auch die die total offensichtlich sind) aufzählen könntest, die nötig sin um das zum laufen zu kriegen.

vielen dank im voraus

t.

ArneStocker
Beiträge: 300
Registriert: 3. November 2004 17:15
Wohnort: Berlin

Beitrag von ArneStocker » 8. August 2008 12:34

viele Wege führen nach Rom ...
mach doch bitte testweise erstmal folgendes

1. Du baust aus Deinem Java Projekt ein jar File (in Eclipse über export) z.B. Caculator.jar
2. Du packst die beiden jambi files in das gleiche Verzeichnis wie das Calculator.jar

Dann rufst Du (aus dem Verzeichnis mit den Jars)

Code: Alles auswählen

java -classpath Calculator.jar:qtjambi-4.4.0_01.jar:qtjambi-win32-msvc2005-4.4.0_01.jar Calculator 
auf, wenn Deine Main Klasse Calculator heisst (unter Windows die : durch ; ersetzen).

Gruß Arne
PS. Zum Thema classpath und Jar files hilft vielleicht folgender Link

http://softech.informatik.uni-kl.de/twi ... tionenJava

thalro
Beiträge: 11
Registriert: 7. Juli 2007 17:18

Beitrag von thalro » 8. August 2008 17:44

Hallo Arne,

vielen dank für die hilfe. es funtioniert jetzt. ich habe es auch hingekriegt, den classpath im manifest anzugeben, so dass man es mit java -jar starten kann wenn die jambi jars im selben verzeichnis liegen.

falls du noch mehr geduld hast, wäre meine nächste frage, wie ich das jetzt alles in ein einziges jar zum verschicken packen kann.

ich habe versucht, die files einfach von eclipse aus mit einzubinden.
es sagt dann aber es könne die libraries nicht entpacken. ausserdem frage ich mich, ob es eine möglichkeit gibt, nur die teile von qt mit zu verteilen, die nötig sind. (mein program ist weniger als 1 mb, die jambi sachen ungefähr 15).

vielen dank nochmal,

t.

ArneStocker
Beiträge: 300
Registriert: 3. November 2004 17:15
Wohnort: Berlin

Beitrag von ArneStocker » 12. August 2008 13:52

Natürlich ist es möglich aus dem Jar-File nicht benötigte Komponenten herauszulöschen (ein jarfile ist nicht viel anders als ein zipfile). Ob das erfolgreich sein wird, weiss ich nicht, ich wüsste auch nicht, welche der nativen dll's bzw. so's wofür benötigt werden und worauf man verzichten kann.

Sowas kann man nur durch Ausprobieren herausfinden - die nicht benötigten Files kannst Du anschließend dauerhaft aus Deinem jambi-msvb-jar File herauslöschen.

Gruß Arne

thalro
Beiträge: 11
Registriert: 7. Juli 2007 17:18

Beitrag von thalro » 12. August 2008 17:44

ok, danke.

dann probier ich mal ein bisschen rum.

Antworten