Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Wenn ich das Programm in Eclipse ausführe, funktioniert alles ganz wunder bar.
Dann erstelle ich eine .jar als Runable Jar mit der Export Funktion in Eclipse.
Wenn ich das Programm dann starte bleibt er immer bei den Teil hängen der in das Excel File schreibt.
Auf meinem Laptop ist es genau das gleiche Problem. Also muss etwas bei der konvertierung in jar schiefgegangen sein. Mach ich hier etwas falsch? Hab ich die Bibilotheken vl falsch eingebunden, was ich allerdings nicht glauben kann da ich es bereits Jahrelang so mache und noch nie ein solches Problem hatte.
Exception in thread "DelayBerichtThread" java.lang.NoSuchMethodError: org.apache
.poi.hssf.usermodel.HSSFSheet.addMergedRegion(Lorg/apache/poi/hssf/util/Region
I
at mtool_eingang.DelayBericht.pr³fen(DelayBericht.java:180)
at mtool_eingang.DelayBericht.run(DelayBericht.java:519)
at java.lang.Thread.run(Unknown Source)
Du hast recht das ist schon mal sehr nützlich.
Aber es doch merkwürdig, dass es nur als jar nicht funktioniert.
Hast du eine Idee was die Fehlermeldung bedeuten soll?
Nee sorry, mit den Bibliotheken kenn ich mich nicht aus. Vielleicht lässt sich über diese Meldung was rauskriegen:
Code:
java.lang.NoSuchMethodError
Keine Ahnung, vielleicht wird eine Methode aufgerufen, die nicht in den PAketen mit drin ist?
public class NoSuchMethodError
extends IncompatibleClassChangeError
Thrown if an application tries to call a specified method of a class (either static or instance), and that class no longer has a definition of that method.
Normally, this error is caught by the compiler; this error can only occur at run time if the definition of a class has incompatibly changed.
at mtool_eingang.DelayBericht.pr³fen(DelayBericht.java:180)
Hast du da mal nachgeschaut? Vielleicht wird ja auch versehentlich auf das falsche Paket zugegriffen (org/apache/poi) und es kommt deshalb zu der Exception?
Ich finde es nur so merkwürdig, dass es ohne jar funktioniert. Deswegen kann ich mir auch nicht vorstellen, warum er auf einmal die Funktion nicht finden sollt.
Du kannst ja mal deine Jar-Datei mit Winzip (oder vergleichbarem Tool) aufmachen und schauen ob auch alle benötigten Bibliotheken eingepackt wurden.
Ansonsten kannst du auch mal alle deine Bibliotheken in einen lib Ordner neben deiner Jar-Datei anlegen und dort alle Bibliotheken abspeichern und dann wie folgt deine Jar ausführen
Code:
set CLASSPATH=./lib/lib1.jar;./lib/lib2.jar;./DeineJarDatei.jar;
java mein.package.zur.main.methode.RunApp
Das ist die Anweisung die in der Zeile 180 steht. Diese wirft die Fehlermeldung: sh.addMergedRegion(r1);
sh ist ein Sheet und r1 eine Region
Wenn ich das jar entpacke sind dort alle Bibilotheken vorhanden und auch wenn ich sie einzelen (wie von dir beschrieben) zum CLASSPATH hinzufüge ändert sich nichts.
dann les doch mal meinen post, den thread, den ich dir gepostet habe, und die antwort von mir in diesem thread. wenn du das machst, wird das funktionieren.
falls das zuviel verlangt ist:
- jar-datei erzeugen
- mit winrar öffnen
- META-INF/MANIFEST.MF öffnen
- Bearbeiten (s. oben - libs auf deine anpassen)
- MANIFEST.MF speichern
Excel with RPG and Java [Archive] - System iNetwork Forums
Ich hab da jetzt nicht alles durchgelesen, aber es scheint wohl noch andere Leute mit dem gleichen Problem zu geben. Scheint evtl. wirklich was mit der Version von POI zu tun zu haben...
Die Pfadangaben scheinen aber zu stimmen. Also was soll ich ändern.
Außerdem kommt die Fehlermeldung, dass er die Datei nicht aktualisieren kann wenn ich speichern will.
Laut API besitzt das Interface [c]Sheet[/c] keine Methode
Code:
addMergedRegion(Region region)
, nur die Klasse HSSFSheet hat eine Deprecated-Methode davon....evtl. baut eclipse daraus ein workaround, der außerhalb von eclipse natürlich nicht mehr funktioniert?!??
wenn es im eclipse funktioniert sollte es mit dem richtigen einbinden der gleichen libs auch bei der jar funktionieren. ansonsten würde halt einfach mal die aktuellste poi nehmen und auch keine depracted Methoden. Nimm für addMergedRegion eine CellRangeAndress
Das mit der CallRangeAdress hab ich schon versucht, hat aber keine Veränderung gebracht.
Ich hab nun die Funktion einfach auskommentier. Ist ohnhin nur einen Formatierungsfunktion.
Bei .autoSizeCell kommt übrigens die gleiche Fehlermeldung. Also hab ichs auch weg.
Ist zwar nicht die Lösung die ich wollte aber ich kann mit ihr leben.
finde das thema immernoch kurios. wenn es in eclipse funktioniert, sollte das in der jar-datei auch nicht anders sein.
nimm doch einfach die aktuelle version von apache poi? warum hat es denn mit CellRangeAdress nicht funktioniert? also in meiner letzten anwendung mit apache poit hat das wunderbar funktioniert.