Kennt sich jemand mit Eclipse und dem Thema Jar-File aus ?

HarryR

Mitglied
Hallo zusammen,

irgendwie bin ich mit der Erstellung eines JAR-Files durch Eclipse unzufrieden.

Folgendes Szenario ärgert mich.

Ich versuche in einer Klasse eine Mail zu senden, es klappt,
aber nur innerhalb von Eclipse.

Also google ich und finde eine Lösung, die darin besteht folgende Codezeilen
einzufügen:
Java:
MailcapCommandMap mc = (MailcapCommandMap)CommandMap.[I]getDefaultCommandMap[/I]();
mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
mc.addMailcap("message/rfc822;; x-java-contenthandler=com.sun.mail.handlers.message_rfc822");
CommandMap.[I]setDefaultCommandMap[/I](mc);

Okay, what mutt dat mut.
ABER, ich schaue in das fertige JAR und da steht in der Datei META-INF/mailcap folgendes:

Code:
# Default mailcap file for the JavaMail System.
#
# JavaMail content-handlers:
#
text/plain;;  x-java-content-handler=com.sun.mail.handlers.text_plain
text/html;;  x-java-content-handler=com.sun.mail.handlers.text_html
text/xml;;  x-java-content-handler=com.sun.mail.handlers.text_xml
multipart/*;;  x-java-content-handler=com.sun.mail.handlers.multipart_mixed; x-java-fallback-entry=true
message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822
#
# can't support image types because java.awt.Toolkit doesn't work on servers
#
#image/gif;;  x-java-content-handler=com.sun.mail.handlers.image_gif
#image/jpeg;;  x-java-content-handler=com.sun.mail.handlers.image_jpeg

Prima, das ist doch genau das was ich im Code eingefügt habe !!
Es wurde von Eclipse aus irgendeinem Grund quasi alles richtig gemacht bis darauf,
dass diese Informationen ignoriert wurden.

Das gleiche passiert beim Entwickeln der DB-Schnittstelle.
In Eclipse geht alles, mit Jar nicht, also wird gegoggelt
und folgender Code an entsprechender Stelle eingefügt:
Java:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Ich schaue ins Jar-File und finde in der Datei META-INF/Services/java.sql.Driver:
Java:
com.microsoft.sqlserver.jdbc.SQLServerDriver
Warum zum Teufel werden dies Meta-Informationen generiert aber dann nicht verwendet ?
Mache ich was falsch ?

Grüßle Harry
 
Du addest aber schon auch die benötigten .jar files und nicht nur den Sourcecode oder?
Es fehlt nichts, das jar-File ist in Ordnung, die Verzeichnisstruktur passt, Eclipse erstellt das JAR inclusive der benötigten *.jar + jede Menge Infos in META-INF. Beim Aufruf auf der Kommandozeile via
Code:
java -jar mein.jar
funktioniert es halt nicht wie in der Entwicklungsumgebung. Dann füge ich via Google gefundene ich nenne es mal Workrounds" ein und es funzt dann mit dem "fastgleichen" jar.

Was ich mich frage ist warum es diese Workarounds/Informationen/Parameter schon in META-INF gibt,
sie aber nicht verwendet werden ..
 

Zurück
Oben