View Full Version : .jar erstellen
Hallo,
Kann mir jemand mal grob erklären wie ich aus folgendem java-Sourcecode ein ausführbares Objekt erzeuge?
http://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/index.jsp?topic=/com.ibm.etools.iseries.toolbox.doc/htmldocumentfoexmpl.htm
Vielen Dank
--ennsman--
Starte die QSH und verwende das Kommando "javac". Dieses erstellt dir die .class die du auch ohne jar ausführen kannst.
Eine jar funktioniert wie ein Verzeichnisbaum und ist für eine einzelne Klasse nicht erforderlich.
CLASSPATH ist nur korrekt zu setzen.
hallo,
ich habe jetzt folgendes probiert, hier ein kleiner Auszug meines Kompilierungsversuchs:
javac -classpath /QIBM/ProdData/HTTP/Public/jt400/lib processXslFo.java
processXslFo.java:33: package com.ibm.xsl.composer.framework does not exist
import com.ibm.xsl.composer.framework.Context; ^ processXslFo.java:35: package com.ibm.as400.util.reportwriter.pdfwriter does not exist
import com.ibm.as400.util.reportwriter.pdfwriter.PDFConte xt; ^
processXslFo.java:36: package com.ibm.as400.util.reportwriter.processor does not exist
import com.ibm.as400.util.reportwriter.processor.XSLRepor tProcessor; ^
processXslFo.java:83: cannot resolve symbol symbol : class PDFContext location: class ProcessXslFo
PDFContext pdfContext = new PDFContext(fout, pageFormat);
....usw.....
Die lt. Source erforderlichen jars befinden sich auch in dem von mir angegebenen classpath.
Woran scheitert die erstellung?
Vielen Dank für eure Geduld mit einem völligen Java-Rookie
Gerhard.
Das ist das Problem mit den jar's.
Diese sind wie Verzeichnisse zu sehen und müssen daher in den CLASSPATH mit aufgenommen werden.
Die Imports beziehen sich nämlich auf Klassen innerhalb der jar's.
Also CLASSPATH=Verz1:jar1:jar2...
wenn ich das richtig Verstanden habe müsste der Befehl zum Erstellen dann so aussehen:
javac -classpath /QIBM/ProdData/HTTP/Public/jt400/lib:composer.jar:outputwriters.jar:reportwriter.ja r:x4j400.jar:xslparser.jar ProcessXslFo.java
Leider bekomme ich aber die gleichen Fehlermeldungen wie schon oben beschrieben.
Vielen Dank
Gerhard
Wo soll javac denn die .jar finden ?
Du musst leider hier den kompletten absoluten Pfad der Jar-Datei mit angeben.
Hm, irgendwo ist da noch der Wurm drin...
Ich habe jetzt beim classpath für jede .jar den kompletten pfad eingegeben, der Befehl sieht dann so aus:
===> javac -classpath /QIBM/ProdData/HTTP/Public/jt400/lib:composer.jar:/QIBM/ProdData/HTTP/Public/jt400/lib:outputwriters.jar:/QIB
M/ProdData/HTTP/Public/jt400/lib:reportwriter.jar:/QIBM/ProdData/HTTP/Public/jt400/lib:x4j400.jar:/QIBM/ProdData/HTTP/Public/jt400/l
ib:xslparser.jar ProcessXslFo.java
Die Fehlermeldungen bleiben aber die gleichen.
Du hast zwischen jar und Pfad einen ":" an Stelle eines "/" verwendet!
Eine jar ist wie ein Verzeichnis mit Unterverzeichnissen zu sehen.
Ah, da war noch der Hund begraben...
Jedenfalls vielen Dank, *.class erstellen hat geklappt!
Danke und Gruss
Gerhard
Bedenke, dass zum Aufruf der class wiederum der Classpath auf die jar's benötigt wird.