Habe Problem mit JAVA-VM's

Schludi

Registered User
Hallo!

Ich habe ein Problem mit der JAVA-VM, und versuche seit 3 Tagen eine einfache Hello-World Applikation auszuführen, die folgenden Inhalt hat:

PHP:
class tag
{
  public static void main (String args[])
  {
      System.out.println("Hello world!");
  }
}

Die Datei läuft auf meinem lokalen Rechner mit dem gleichen Aufruf ohne Probleme - habe sie heruntergeladen und ausprobiert..

In der Datei ~/.bash_profile auf dem VServer von meinem JAVA-Benutzer steht:

PHP:
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/java/j2re1.4.2_07/bin/:/usr/java/j2re1.4.2_07/bin/
#JAVA_HOME=/usr/java/jre1.5.0_01/
JAVA_HOME=/usr/java/j2re1.4.2_07/
#JAVA_PLUGIN= /usr/java/j2re1.4.2_07/plugin/
CLASSPATH=/usr/java/j2re1.4.2_07/lib/

export PATH
export JAVA_HOME
#export JAVA_PLUGIN
export CLASSPATH
unset USERNAME

Ich weiss nicht was ich falsch gemacht haben könnte JAVA_HOME ist gesetzt, habe mal "env CLASSPATH=/usr/java/j2re1.4.2_07/lib/" gesetzt, und habe es mittlerweile mit 2 verschiedenen VM's ausprobiert.

Bei VM 1.4x erhalte ich:

PHP:
[bjoern@148083 web1]$ java -mx30m tag
Exception in thread "main" java.lang.NoClassDefFoundError: tag/class

Habe auch schonmal versucht nen Symbolischen Link zu setzen:
ln -s /usr/java/jre1.5.0_01/bin/java /usr/bin/java (bei der neuen VM und alten)

Bei der neuen VM erhalte ich folgende Fehlermeldung:

PHP:
[bjoern@148083 web1]$ java -mx30m tag
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

Könnte mir mal bitte jdm helfen? Bin schon am Verzweifeln. Ich brauche jre1.5 um ne Client-Server-Anwendung für ein Seminar zu programmieren.

MfG

Björn Karpenstein
 
Also erst einmal hast du im PATH zwei mal das Java Verzeichnis drin stehen. Hat das einen Grund?

Dann lösch mal den Classpath raus. Der Classpath muss nur bei externen Bibliotheken gesetzt werden und dann auch besser über die Option -cp

Deine Klasse sollte public sein.
Klassen fangen immer mit einem Grossbuchstaben an (musst dann aber auch den Dateinamen ändern)
 
Geht immer noch nicht

Hallo! Danke für Deine Antwort, ich hab die Klasse groß und Public gesetzt, das hat nix gebracht. Nach wie vor: Am Server läufts nicht (egal mit welcher VM) und lokal läufts:

PHP:
public class HelloWorld {
	public static void main(String args[])
	{
		System.out.println("Hello World!");
	}
}

Hier die Datei bash_profile ohne classpath

PHP:
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/java/jre1.5.0_01/bin/:/usr/java/jre1.5.0_01/
JAVA_HOME=/usr/java/jre1.5.0_01/
#JAVA_HOME=/usr/java/j2re1.4.2_07/
JAVA_PLUGIN= /usr/java/jre1.5.0_01/plugin/

export PATH
export JAVA_HOME
export JAVA_PLUGIN
unset USERNAME

Noch ne Idee? :(
 
Und eine globale Classpath Variable ist nicht gesetzt? Wenn ja muss nämlich das aktuelle Verzeichnis (./) mit aufgenommen werden, sonst wird die Klasse nicht gefunden.

Ansonsten fällt mir gerade auch nichts ein.
 
Umstieg auf das neue SUSE half

Hallo!

Ne das brachte leider auch nichts, ich habe jetzt SUSE-Linux installiert und hier scheint es zu laufen. Leider stellt mich das vor einige neue Probleme die ich nicht so leicht in den Griff bekomme, was ich vorher nicht hatte. Ich eröffne hierzu mal einen neuen Thread :).
 
Back
Top