java-forum.org - Java programmieren aus Leidenschaft
Java 6 Einstieg und professioneller Einsatz
Alter Preis: 34,90 EUR
Jetzt: 0,00 EUR

zzgl. Versandkosten

Zurück   java-forum.org - Java programmieren aus Leidenschaft > Java - Programmierung > IDEs und Tools

IDEs und Tools Fragen zu Programmierwerkzeugen (bspw. Eclipse, Netbeans, IntelliJ IDEA, JBuilder)

Thema geschlossen    
Themen-Optionen Thema durchsuchen Ansicht
Alt 29.03.2008, 15:16   #1 (permalink)
Stammbenutzer
Kilobyte
 
Registriert seit: 06.02.2008
Fachbeiträge: 116
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard Lauffähige JAR-Datei erstellen mit Eclipse

Hallo an alle Eclipse-Benutzer.

Mit Eclipse gibt es ja 2 Möglichkeiten des Exports. Einmal die Option "JAR file" und dann noch die Option "Runnable JAR" file.

Wird ein lauffähgies JAR file ausschließlich über letztgenannte Option erstellt, oder kann dies auch mit der Option "JAR file" durchgeführt werden?

Erstelle ich mein JAR file mit "Runnable JAR" ist die JAR-Datei ca. 7,5MB groß. Offensichtlich werden alle externen JAR-Archive die ich im BuildPath angegeben habe mit eingebunden.
Die JAR-Datei läßt sich problemlos starten, ist jedoch riesengroß und es sind Bibliotheken eingebunden die nicht von mir sind (rechtliches Problem??).

Mit der ersten Option, also nur "JAR file", beträgt die Größe der generierten Datei lediglich 580KB.
Aber: Die kleine JAR-Datei läßt sich nicht starten und meldet mir ständig:
"Could not find the main class" trotz existierender MANIFEST.MF mit dem Inhalt
Code:
Manifest-Version: 1.0
Sealed: true
Main-Class: hauptFenster.Reha
und einer existirenden .classpath Datei deren Inhalt so aussieht:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="src" path="src"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/swt-debug.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/adsjdbc.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/Filters.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/forms-1.2.0.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/jmock-1.1.0RC1.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/junit-4.0.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/junit-4.0-src.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/JXLayer-2008_03_02.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/looks-2.1.4.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/MultipleGradientPaint.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/mysql-connector-java-5.1.5-bin.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/swing-layout.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/swing-worker.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/swingx-2008_03_02.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/swt.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/openofficeorg/unoil.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/openofficeorg/ag.ion.noa_2.1.0.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/openofficeorg/bion_jurt-2.0.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/openofficeorg/java_uno.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/openofficeorg/java_uno_accessbridge.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/openofficeorg/juh.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/openofficeorg/junit-3.8.1.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/openofficeorg/jut.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/openofficeorg/registry-3.1.3.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/openofficeorg/ridl.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/openofficeorg/sandbox.jar"/>
	<classpathentry kind="lib" path="C:/RehaVerwaltung/RTAJars/openofficeorg/bion_officebean-2.0.jar"/>
	<classpathentry kind="output" path="bin"/>
</classpath>
Etwas ratlose Grüße an alle
Jürgen
JSteinhilber ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 29.03.2008, 16:31   #2 (permalink)
Premium-Benutzer
 
Benutzerbild von Wildcard
 
Registriert seit: 10.11.2004
Fachbeiträge: 20.047
Abgegebene Danke: 4
Erhielt 429 Danke für 400 Beiträge
Der 'Runnable' Export ist wohl von irgendeinem PlugIn. Der normale weg ist export -> jar file, main class angeben und dann solltest du es starten können.
Am besten du startest von der Konsole, damit du die Exceptions siehst.
__________________
Take back the Desktop
Wildcard ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 29.03.2008, 16:53   #3 (permalink)
Stammbenutzer
Kilobyte
Themenstarter
 
Registriert seit: 06.02.2008
Fachbeiträge: 116
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Hallo Wildcard,

geht leider nicht!
Ich habe die MainClass angegeben und trotzdem will er nicht.

Wenn ich die reha.jar mit dem Kommando javaw -jar reha.jar starte erhalte ich sofort ein WindowsFenster mit der Meldung daß die MainClass nicht gefunden werden konnte.

Starte ich mit java -jar reha.jar erhalte ich folgende Fehlermeldung

Code:
C:\RehaVerwaltung>java -jar reha.jar
Exception in thread "main" java.lang.NoClassDefFoundError: ag/ion/bion/officelay
er/application/OfficeApplicationException
Caused by: java.lang.ClassNotFoundException: ag.ion.bion.officelayer.application
.OfficeApplicationException
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Was mich stutzig macht, sowohl im root-Verzeichnis des Archives als liegt eine MANIFEST.MF, als auch in einem Unterverzeichnis des Archives mit Namen META-INF...

Der Inhalt der beiden MANIFEST.MF ist aber identisch.

Code:
Manifest-Version: 1.0
Sealed: true
Main-Class: hauptFenster.Reha

Da versucht man sich nun wochenlang in Sachen Java abzumühen, hätte dann gerne eine lauffähige Version des geistigen Ergusses - und was ist?
Nix ist - auch schade eigentlich.

Gruß
Jürgen
JSteinhilber ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 29.03.2008, 17:49   #4 (permalink)
Premium-Benutzer
 
Benutzerbild von Wildcard
 
Registriert seit: 10.11.2004
Fachbeiträge: 20.047
Abgegebene Danke: 4
Erhielt 429 Danke für 400 Beiträge
Die Main Class ist nicht das Problem, die Bibliotheken fehlen:
Caused by: java.lang.ClassNotFoundException: ag.ion.bion.officelayer.application
Alle benötigten Bibliotheken müssen im Classpath liegen (im Manifest eintragen)
__________________
Take back the Desktop
Wildcard ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 29.03.2008, 18:04   #5 (permalink)
Stammbenutzer
Kilobyte
Themenstarter
 
Registriert seit: 06.02.2008
Fachbeiträge: 116
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Zitat:
Alle benötigten Bibliotheken müssen im Classpath liegen (im Manifest eintragen)
????
Tja da staunt der Laie und der Fachmann wundert sich - ich staune....

Wie lautet denn die Syntax für solch einen Eintrag, etwa so?
Code:
Manifest-Version: 1.0
Sealed: true
Main-Class: hauptFenster.Reha
Classpath: RTAJars/openofficeorg/ag.ion.noa_2.1.0.jar 
RTAJars/openofficeorg/java_uno_accessbridge.jar 
etc...
Ich dachte es genügt wenn die externen JAR's im BuildPath von Eclipse eingetragen werden und der Rest wird von Eclipse organisiert.

Gruß
Jürgen
JSteinhilber ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 29.03.2008, 19:11   #6 (permalink)
Premium-Benutzer
 
Benutzerbild von Wildcard
 
Registriert seit: 10.11.2004
Fachbeiträge: 20.047
Abgegebene Danke: 4
Erhielt 429 Danke für 400 Beiträge
Wie soll Eclipse denn wissen wo die Bibliotheken später liegen werden?
__________________
Take back the Desktop
Wildcard ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 29.03.2008, 19:20   #7 (permalink)
Stammbenutzer
Kilobyte
Themenstarter
 
Registriert seit: 06.02.2008
Fachbeiträge: 116
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Das ist richtig, aber im BuildPath werden die Bibliotheken ja mit Pfad eingetragen und meine "nicht lauffähige" Jar liegt in derselben Pfadstruktur - aber sei's drum.

Ist die von mir oben aufgeführte Syntax völlig neben der Spur oder könnte es so hinhauen?

Grüße
Jürgen
JSteinhilber ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 30.03.2008, 12:31   #8 (permalink)
Stammbenutzer
Kilobyte
Themenstarter
 
Registriert seit: 06.02.2008
Fachbeiträge: 116
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Problem behoben!

Zuerst habe ich, wie in einigen Beiträgen beschrieben, die ganzen jars in einer Zeile aufgeführt.
Ergebnis: beim Versuch meine Jar zu erstellen -> line too long!

Dann habe ich jedes jar-Archiv in einer neuen Zeile aufgeführt: ebenfalls Fehlermeldung, irgend etwas war "korrupt".

Dann habe ich jede neue Zeile mit einem Leerzeichen begonnen: wieder Fehlermeldung, ich glaube dann hatte er wieder die MainClass nicht gefunden.

Der Trick bestand letzlich darin jede Zeile mit einem Leerzeichen enden zu lassen.

Weshalb das so ist? Keine Ahnung, aber es funktioniert definitiv nur auf diese Weise.
Zumindest mit meiner Eclipse-Installation.

Das ganze sieht jetzt so aus:
Code:
Manifest-Version: 1.0
Sealed: true
Main-Class: hauptFenster.Reha
Class-Path: RTAJars/adsjdbc.jar<Leerzeichen> 
RTAJars/Filters.jar<Leerzeichen> 
RTAJars/forms-1.2.0.jar<Leerzeichen> 
RTAJars/jmock-1.1.0RC1.jar<Leerzeichen> 
RTAJars/junit-4.0.jar<Leerzeichen> 
RTAJars/junit-4.0-src.jar<Leerzeichen> 
...etc
Gruß
Jürgen

Edit: So und jetzt sind die Umleitungen der OOo-Events an der Reihe. Und wenn das erledigt ist, dann habe ich mein Sonntags-Pensum erfüllt!
JSteinhilber ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Thema geschlossen    

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Jar Datei in Eclipse erstellen mit Ressourcen Ordner Plattformprogrammierung 9 03.09.2008 13:12
JAR Datei mit Eclipse erstellen? Java Basics - Anfänger-Themen 5 23.04.2008 14:11
JAR-Datei in Eclipse erstellen Java Basics - Anfänger-Themen 7 16.01.2008 13:46
Eclipse: Jar Datei erstellen? peterfarge Java Basics - Anfänger-Themen 2 18.05.2006 16:54
JAR-Datei mit Eclipse einschließlich SWT erstellen metalsoft Java Basics - Anfänger-Themen 12 28.07.2004 17:01


Lesezeichen

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de