Jar-Datei startet nicht...

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
walterschmitz
Beiträge: 229
Registriert: 04.04.2005 10:37:28

Jar-Datei startet nicht...

Beitrag von walterschmitz » 10.11.2006 12:11:12

Hallo zusammen,

ich habe mir Sun-Java5 komplett installiert.
Jetzt wollte ich ein Programm, welches in einer Plattform unabhängigen Version downloadbar ausführen.

Für Windows gibt es eine Bat-Datei...

Code: Alles auswählen

@echo off
javaw -classpath . HOLauncher
@start javaw -Xmx512m -jar ho.jar
@if exist extension.bat call extension.bat
@exit
daraus ist zu entnehmen, dass eigentlich die ho.jar gestartet wird oder seh ich das falsch...

ausserdem hab ich ein javaw ausprobiert,aber das gibt es in der aktuellen Verison nicht mehr, nur noch ein javaws... aber das hat auch nicht geholfen.

versuche ich die ho.jar von Hand per java -jar ho.jar auszuführen kommt folgende Fehlermeldung:

Code: Alles auswählen

Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit: gnu.java.awt.peer.gtk.GtkToolkit
   at java.awt.Toolkit.getDefaultToolkit(libgcj.so.70)
   at java.awt.Font.tk(libgcj.so.70)
   at java.awt.Font.getPeerFromToolkit(libgcj.so.70)
   at java.awt.Font.<init>(libgcj.so.70)
   at javax.swing.plaf.FontUIResource.<init>(libgcj.so.70)
   at javax.swing.plaf.metal.DefaultMetalTheme.<clinit>(libgcj.so.70)
   at java.lang.Class.initializeClass(libgcj.so.70)
   at java.lang.Class.initializeClass(libgcj.so.70)
   at javax.swing.plaf.metal.MetalLookAndFeel.createDefaultTheme(libgcj.so.70)
   at javax.swing.plaf.metal.MetalLookAndFeel.<init>(libgcj.so.70)
   at javax.swing.UIManager.<clinit>(libgcj.so.70)
   at java.lang.Class.initializeClass(libgcj.so.70)
   at javax.swing.UIManager.getUI(libgcj.so.70)
   at javax.swing.JPanel.updateUI(libgcj.so.70)
   at javax.swing.JPanel.<init>(libgcj.so.70)
   at javax.swing.JPanel.<init>(libgcj.so.70)
   at de.hattrickorganizer.gui.templates.ImagePanel.<init>(Unknown Source)
   at de.hattrickorganizer.gui.HOMainFrame.main(Unknown Source)
   at de.hattrickorganizer.HO.main(Unknown Source)
Caused by: java.lang.UnsatisfiedLinkError: libgtkpeer: libgtkpeer.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
   at java.lang.Runtime._load(libgcj.so.70)
   at java.lang.Runtime.loadLibrary(libgcj.so.70)
   at java.lang.System.loadLibrary(libgcj.so.70)
   at gnu.java.awt.peer.gtk.GtkToolkit.<clinit>(libgcj.so.70)
   at java.lang.Class.initializeClass(libgcj.so.70)
   at java.lang.Class.forName(libgcj.so.70)
   at java.awt.Toolkit.getDefaultToolkit(libgcj.so.70)
   ...18 more
Hat jemand eine Idee? Ich habe schon versucht die OnlineHilfe zu befragen, aber die ist leider momentan offline... oder nur für ältere Versionen abrufbar, die so aber gar nicht mehr nutzbar sind für die aktuelle Version.

Wäre dankbar, wenn mir jemand weiterhelfen könnte.

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Re: Jar-Datei startet nicht...

Beitrag von hupfdule » 10.11.2006 12:27:12

walterschmitz hat geschrieben:

Code: Alles auswählen

@echo off
javaw -classpath . HOLauncher
@start javaw -Xmx512m -jar ho.jar
@if exist extension.bat call extension.bat
@exit
daraus ist zu entnehmen, dass eigentlich die ho.jar gestartet wird oder seh ich das falsch...
Ich seh das so, dass zuerst der HOLauncher gestartet wird und danach die ho.jar.
Vermutlich brauchst du den HOLauncher aber nicht, von daher hast du recht.
ausserdem hab ich ein javaw ausprobiert,aber das gibt es in der aktuellen Verison nicht mehr, nur noch ein javaws... aber das hat auch nicht geholfen.
Das ist glaub nur für Windows nötig und existiert daher nicht. Nimm stattdessen 'java'.

Code: Alles auswählen

Exception in thread "main" java.awt.AWTError: Cannot load AWT toolkit: 
gnu.java.awt.peer.gtk.GtkToolkit
[...]
Caused by: java.lang.UnsatisfiedLinkError: libgtkpeer: libgtkpeer.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden
Ziemlich klar. Dir fehlt die libgtkpeer.so. In welchem Paket die zu finden ist, findest du mit apt-file heraus

Code: Alles auswählen

apt-get install apt-file
apt-file update
apt-file search  libgtkpeer.so
Allerdings wundert mich das Package gnu.java.awt.peer.gtk. Das sieht mir sehr danach aus, dass du nicht das Sun Java verwendest. Was ergibt denn

Code: Alles auswählen

java -version
?

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von GoKi » 10.11.2006 12:29:03

Kannst Du mal bitte die Ausgabe von

Code: Alles auswählen

java -version
posten?
MfG GoKi
:wq

walterschmitz
Beiträge: 229
Registriert: 04.04.2005 10:37:28

Beitrag von walterschmitz » 10.11.2006 15:06:15

ergibt folgendes:
java -version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20061020 (prerelease) (Debian 4.1.1-17)

Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Ihr habt schon recht... sieht nicht direkt nach Java von Sun aus... Da sollte dann doch irgendwie (c) bei Sun oder sowas drinstehen, würde ich von ausgehen.

hm...
naja
soll ich diese Librarie dennoch installieren?

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 10.11.2006 15:19:21

walterschmitz hat geschrieben: Ihr habt schon recht... sieht nicht direkt nach Java von Sun aus... Da sollte dann doch irgendwie (c) bei Sun oder sowas drinstehen, würde ich von ausgehen.
Vor allem sollte nicht GNU drin stehen. ;-)

Du hast jetzt mehrere Java Varianten installiert. Das ist kein Problem. Du musst nur in den alternatives angeben, welche davon du verwenden willst.

Code: Alles auswählen

update-alternatives --config java
Dort wählst du das Java von Sun aus.

Falls dieses dort nicht registriert ist, erst mal die Frage: Wie hast du das Java von SUN installiert? Über ein Debian-Paket? Wenn ja, woher kommt das Debian-Paket?

walterschmitz
Beiträge: 229
Registriert: 04.04.2005 10:37:28

Beitrag von walterschmitz » 10.11.2006 15:32:06

du hattest recht...

Code: Alles auswählen

update-alternatives --config java

There are 3 alternatives which provide `java'.

  Selection    Alternative
-----------------------------------------------
*+        1    /usr/lib/jvm/java-gcj/jre/bin/java
          2    /usr/bin/gij-wrapper-4.1
          3    /usr/lib/jvm/java-1.5.0-sun/jre/bin/java

Press enter to keep the default[*], or type selection number: 3
Using `/usr/lib/jvm/java-1.5.0-sun/jre/bin/java' to provide `java'
ich habe jetzt 3 ausgewählt für Java von Sun...

Danach zum Checken erneut

Code: Alles auswählen

update-alternatives --config java

There are 3 alternatives which provide `java'.

  Selection    Alternative
-----------------------------------------------
 +        1    /usr/lib/jvm/java-gcj/jre/bin/java
          2    /usr/bin/gij-wrapper-4.1
*         3    /usr/lib/jvm/java-1.5.0-sun/jre/bin/java

Press enter to keep the default[*], or type selection number: 3
Using `/usr/lib/jvm/java-1.5.0-sun/jre/bin/java' to provide `java'.
Das Sternchen für Default ist jetzt gesetzt, nur das "+" kann ich nicht verändern... weiß aber nicht, ob das unbedingt sein muss.

ein

Code: Alles auswählen

java -version
ergibt jetzt folgendes:
java version "1.5.0_08"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_08-b03)
Java HotSpot(TM) Client VM (build 1.5.0_08-b03, mixed mode, sharing)
Steht zwar direkt auch nix von Sun drin, aber ausgewählt ist es wenigstens...

Das Paket kam von Debian aus dem non-free-Bereich... Ich habe es einfach über das

Code: Alles auswählen

apt-get install java-sun-jdk
installiert.
Aber wohl vergessen, das ganze nachher auf Sun umzustellen.

Danke dir für den Hinweis

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 10.11.2006 15:40:27

walterschmitz hat geschrieben: Das Sternchen für Default ist jetzt gesetzt, nur das "+" kann ich nicht verändern... weiß aber nicht, ob das unbedingt sein muss.
Das + gibt an, was normalerweise die höchste Priorität hat. Das ist schon ok so.
ein

Code: Alles auswählen

java -version
ergibt jetzt folgendes:
java version "1.5.0_08"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_08-b03)
Java HotSpot(TM) Client VM (build 1.5.0_08-b03, mixed mode, sharing)
Steht zwar direkt auch nix von Sun drin, aber ausgewählt ist es wenigstens...
Das ist schon korrekt. Das ist das offizielle JRE.

BTW, wenn du Java Programme auch kompilierst, wirdst du auch javac anpassen müssen.

walterschmitz
Beiträge: 229
Registriert: 04.04.2005 10:37:28

Beitrag von walterschmitz » 10.11.2006 15:45:19

javac scheint aber richtig konfiguriert zu ein:

Code: Alles auswählen

update-alternatives --config javac

There is only 1 program which provides javac
(/usr/lib/jvm/java-1.5.0-sun/bin/javac). Nothing to configure.
Das sieht mir sehr nach Sun aus... so wie gewollt ;-)

Danke dir aber für deine schnellen Antworten und die Hilfe

Antworten