PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : $JAVA_HOME/bin/java vs. java



Subsurf
30.07.2011, 20:37
Hallöchen,

bin mir nicht sicher ob ich hier nun richtig bin oder ob mein Problem gar nicht Java-spezifisch ist. Notfalls bitte verschieben :brav:

Ich habe ein Java-Programm (den Minecraft-Server um genau zu sein), das ich über den Aufruf von java ausführen will.

Folgendes Vorgehen funktioniert wunderbar:

user@server:/> cd /opt/minecraft-server/bin
user@server:/opt/minecraft-server/bin> java -jar minecraft-server.jar nogui

Mit dem Aufruf:

user@server:/> cd /opt/minecraft-server/bin
user@server:/opt/minecraft-server/bin> $JAVA_HOME/bin/java -jar minecraft-server.jar nogui
wirft mir das gestartete Programm jedoch einige NoSuchFieldExceptions, noch ein paar andere und beim Beenden eine NullPointerException um die Ohren.

Was genau ist nun der Unterschied der beiden Aufrufe? Ich befürchte schon fast dass das gar kein Java-Problem ist und ich das Befehlssystem bisher einfach falsch verstanden habe.

MfG Subsurf

dmaphy
31.07.2011, 02:24
Eventuell hast du mehrere Java-Installationen die unterschiedlich sind und an verschiedenen Plätzen liegen. Sprich wenn du einfach nur java eingibst, könnte das eine andere Version sein als die mit dem $JAVA_HOME. Übergib dem java-Befehl doch einfach mal nur den Parameter -version, das sollte schon einen Hinweis darauf geben:



java -version
$JAVA_HOME/bin/java -version


Was man dann noch schauen kann ist der Pfad wo das java liegt.



which java # liefert den Pfad für den ersten Fall
echo "$JAVA_HOME/bin/java"

Subsurf
31.07.2011, 12:16
Hi,

danke für die Hinweise, du hattest recht mit den unterschiedlichen Versionen. Die im Pfad liegende Version ist OpenJDK 1.6.0_20, die unter $JAVA_HOME ist Version 1.5.0 aus dem GNU Projekt. Also zwei verschiedene.

Jetzt funktioniert auch mein Shellskript, vielen Dank :)