• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Fehler bei JDK 6 Installation auf Suse 9.3

hgdueck

Newbie
Hallo,

ich bin kein Linuxexperte, aber ich denke dass ich die Basics beherrsche.
Verwende schon eine Weile den VServer von S4Y als Hosting-Plattform.
Jetzt stehe ich vor der Herausforderung, eine neue Anwendung zu installieren. Diese benötigt das JDK.

Leider scheitert die Installation mit der Meldung:
Code:
error: %post(jdk-1.6.0-fcs) scriptlet failed, exit status 5

das Kommando
Code:
java -version
bringt trotzdem eine brauchbare Ausgabe:
Code:
java version "1.4.2_08"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03)
Java HotSpot(TM) Client VM (build 1.4.2_08-b03, mixed mode)

Die Anwendung lässt sich trotzdem nicht starten und weisst auf einen Fehler mit dem JDK hin.

Jemand eine Idee? Es geht um Suse 9.3.

Danke und Gruß
 
A

Anonymous

Gast
Was für ein JDK-Paket willst Du denn da installieren?

Gesamter Name des RPM und Quelle? (Link)

Greetz,

RM
 
hgdueck schrieb:
ich bin kein Linuxexperte, aber ich denke dass ich die Basics beherrsche.
Das bezweifle ich doch stark. :roll:
Zu den "Basics" gehört auch der Umgang mit der Paketverwaltung und das Wissen, dass man auf einem SuSE-System keine Fedora-RPMs installiert.
 

sparrow

Member
hgdueck schrieb:
Leider scheitert die Installation mit der Meldung:
Code:
error: %post(jdk-1.6.0-fcs) scriptlet failed, exit status 5

das Kommando
Code:
java -version
bringt trotzdem eine brauchbare Ausgabe:
Code:
java version "1.4.2_08"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03)
Java HotSpot(TM) Client VM (build 1.4.2_08-b03, mixed mode)

Die Anwendung lässt sich trotzdem nicht starten und weisst auf einen Fehler mit dem JDK hin.

Da ist bereits ein JDK installiert und funktioniert auch.
Wie genau lautet denn die Fehlermeldung die die Anwendung ausgibt?

Gruß
Sparrow
 
OP
H

hgdueck

Newbie
Dies ist das Paket: jdk-6-linux-i586-rpm.bin aus dieser Quelle: hier
Sofern ich erkennen kann, gibt es dort nur ein einziges Paket.
Ich habe diese Paket auf einem lokalen (allerdings Suse 10.1) installiert und da funktioniert es.
Vielleicht funktioniert es nicht auf der 9.3.

Die Fehlermeldung der Anwendung:

Code:
Running Mindquarry Collaboration Server...
wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Wrapper (Version 3.2.0) http://wrapper.tanukisoftware.org
jvm 1    |
jvm 1    | WrapperSimpleApp: Unable to locate the class com.mindquarry.launcher.WebappLauncher: java.lang.UnsupportedClassVersionError: com/mindquarry/launcher/WebappLauncher (Unsupported major.minor version 49.0)
jvm 1    |
jvm 1    | WrapperSimpleApp Usage:
jvm 1    |   java org.tanukisoftware.wrapper.WrapperSimpleApp {app_class} [app_parameters]
jvm 1    |
jvm 1    | Where:
jvm 1    |   app_class:      The fully qualified class name of the application to run.
jvm 1    |   app_parameters: The parameters that would normally be passed to the
jvm 1    |                   application.
wrapper  | <-- Wrapper Stopped
 
OP
H

hgdueck

Newbie
Da ist bereits ein JDK installiert und funktioniert auch.
Wie genau lautet denn die Fehlermeldung die die Anwendung ausgibt?

Ok, jetzt sehe ichs auch :roll: ....merci... ... versuche es morgen mal zu deinstallieren, da ich die neue version brauche.
Bin wohl doch noch grüner als ich dachte ;)

Werde berichten.

Danke euch allen schon mal. Ich seid echt fix.
 

sparrow

Member
Eins vorweg:
Du brauchst nichts zu deinstallieren!
Mit etwas Pech hängen da nämlich Abhängigkeiten dran.

Dann müssen wir erstmal einkreisen was du machen willst. Willst ein Java-Programm ausführen? Dann brauchst du kein JDK (Java Development Kit) sondern eine JRE (Java-Runtime-Environment/Java Laufzeitumgebung).
Ersteres ist dazu da um Programme in Java zu entwickeln (inkl. Compiler, etc...), letzteres um in Java geschriebene und übersetzte Programme auszuführen.
Ich gehm mal stark davon aus, dass JRE-Paket reicht.

Der Fehler läßt übrigens tatsächlich auf eine zu alte Java-Version schließen.

Vorschlag zum Vorgehen meinerseits:
Du lädst dir von [ULR=http://java.sun.com/javase/downloads/index.jsp]hier[/URL] die JRE der Version 6 herunter. Und zwar nicht das RPM (jre-6-linux-i586-rpm.bin) sondern jre-6-linux-i586.bin.
Diese Datei machst du ausführbar und führst Sie aus. Anschließend enpackt sich die Laufzeitumgebung aus dieser Datei.
Theoretisches Bespiel:
Du legst in deinem /home ein Verzeichnis namens j6 an und speicherst dort die Datei hinein:
Code:
cd ~/j6
chmod +x jre-6-linux-i586.bin
./jre-6-linux-i586.bin
Nachdem du nach den Lizenzen angenommen hast wird die JRE entpackt, und zwar in einen Unterverzeichnis von ~/j6 das wahrscheinlich mit jre... beginnt.
In diesem Untervezeichnis gibt es ein Verzeichnis /bin und darin enthalten eine ausführbare Datei namens "java". Mit dieser Datei kannst du Problemlos diese Laufzeitumgebung starten. Eine weitere "Installation" ist thoeretisch nicht nötig, Pfade müssen nicht angepasst werden, es sei denn du hast vor das zur Stanadard-Java-Installation zu machen. Wenn du es abe nur für ein Programm brauchst ist das wohl nicht nötig.
Der Betrieb von 2 JREs auf einem System ist problemlos möglich.

Hast du, wie hier beschrieben, die JRE entpackt kannst du jede Java-Anwendung direkt damit starten.
Angenommen es handelt sich um eine .jar die du startest, dann wäre der Befehl:
Code:
~/j6/jre.../bin/java -jar /pfad/zur/jar
Wobei das jre... durch das Verzeichnis zu ersetzen ist das beim Entpacken angelegt wurde.

Gruß
Sparrow
 
OP
H

hgdueck

Newbie
sparrow schrieb:
Willst ein Java-Programm ausführen? Dann brauchst du kein JDK (Java Development Kit) sondern eine JRE (Java-Runtime-Environment/Java Laufzeitumgebung).

Hallo sparrow,

ja, du hast recht, ich will nur ein Programm ausführen. Auf dem VServer war die JRE 1.4 vorinstalliert, diese habe ich auf die 1.5 aktualisiert. Soweit so gut.

Leider gibt es beim Start der Anwendungen jetzt irgendwelche Fehler bezüglich Memory... hier ein Auszug... Bei Bedarf kann ich auch die gesamte Ausgabe posten.

Jemand ein Tipp?

Gruß
hd
Code:
Running Mindquarry Collaboration Server...
wrapper  | --> Wrapper Started as Console
wrapper  | Launching a JVM...
jvm 1    | Wrapper (Version 3.2.0) http://wrapper.tanukisoftware.org
jvm 1    |
jvm 1    | Running in: /opt/mindquarry
jvm 1    | Jetty's HOME is: .
jvm 1    | 2007-02-28 11:21:20.791::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog
jvm 1    | 2007-02-28 11:21:21.047::INFO:  jetty-6.0.2
jvm 1    | 2007-02-28 11:21:21.065::WARN:  failed org.mortbay.thread.BoundedThreadPool@ca0115
jvm 1    | java.lang.OutOfMemoryError: unable to create new native thread
jvm 1    |      at java.lang.Thread.start0(Native Method)
jvm 1    |      at java.lang.Thread.start(Thread.java:574)
jvm 1    |      at org.mortbay.thread.BoundedThreadPool.newThread(BoundedThreadPool.java:199)
jvm 1    |      at org.mortbay.thread.BoundedThreadPool.doStart(BoundedThreadPool.java:351)
jvm 1    |      at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
jvm 1    |      at org.mortbay.jetty.Server.doStart(Server.java:222)
jvm 1    |      at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
jvm 1    |      at com.mindquarry.launcher.WebappLauncher.main(WebappLauncher.java:44)
jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
jvm 1    |      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
jvm 1    |      at java.lang.reflect.Method.invoke(Method.java:585)
jvm 1    |      at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:197)
jvm 1    |      at java.lang.Thread.run(Thread.java:595)
jvm 1    | log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
jvm 1    | log4j:WARN Please initialize the log4j system properly.
jvm 1    | 2007-02-28 11:21:23.974:/:INFO:  Loading Spring root WebApplicationContext
jvm 1    | 2007-02-28 11:21:29.156:/:INFO:  Apache Cocoon 2.2.0-M3_Mindquarry_1 is running in mode: prod
jvm 1    | 2007-02-28 11:21:29.325::WARN:  Failed startup of context org.mortbay.jetty.webapp.WebAppContext@c67a88{/,file:/opt/mindquarry/webapps/}
jvm 1    | org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.cocoon.configuration.Settings': Invocation of init method failed; nested exception is java.lang.OutOfMemoryError
jvm 1    | Caused by: java.lang.OutOfMemoryError
 

sparrow

Member
Der JVM kannst du sagen wie viel Speicer sie maximal belegen, bzw. der Applikation, zur Verfügung stellen soll.
Was immer du da starten willst, es hat Hunger.

Du kannst der JVM aber sagen, dass sie mehr heap-Speicher zur Verfügung stellen soll:
Code:
java -Xms64M -Xmx512M ....
Würdest du ein Programm in der JVM mit diesen beiden Optionen starten würde die JVM mit einem Anfangsheap von 64 MB initialisiert und kann diesen dann auf max. 512 MB vergrößern.

Diese beiden Optionen musst der JVM beim Start mitgeben. Je nachdem wie du dein Programm im Augenblick startest würde danach vielleicht ein -jar meinJar.jar folgen.


Gruß
Sparrow
 
OP
H

hgdueck

Newbie
Hallo,

konnte mich mal wieder mit dem Problem befassen.
Nachdem alles nichts geholfen hat, habe ich den Server neu installiert. Leider wird bei der Neuinstallation immer die JVM 1.4 installiert.
Ich habe dann über Yast die 1.4 gelöscht und die 1.5 installiert.
Leider scheint das nicht zu funktionieren, denn jetzt bekomme ich bei
Code:
 java -version
diese Fehlerausgabe:
Code:
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
.

Was mache ich falsch?
Muss ich die 1.4 überhaupt deinstallieren oder kann ich die 1.5 einfach dazu installieren? Wie sage ich dann dem System welche Version standardmäßig verwendet werden soll?

Gruß
HD
 
Oben