Ubuntu-VM Java starten

cotopaxo

Mitglied
Hi,

ich verwende derzeit eine Ubuntu-VM, auf der ich unter Eclipse eine Klasse implementiert habe, die u.a. auf zwei andere Projekte zugreift und die main-Methode enthält.

Obwohl ich Java in den Classpath eingefügt habe und die JAVA_HOME-Variable gesetzt ist, kann ich die main-Methode nicht ausführen:

"Exception in thread "main" java.lang.NoClassDeffoundError: ....
....
Could not find the main class: .... Program will exit.


Die JUunit-Tests hatten zumindest funktioniert. In meinem Java-Verzeichnis habe ich die folgenden Java-Unterverzeichnisse: default-java, java-1.5.0-gcj-4.6, java-1.6.0-openjdk, java-1.6.0-openjdk-amd64, java-6-openjdk, java-6-openjdk-common, java-7-openjdk-amd64.

Ist es völlig egal, welche der Unterverzeichnisse ich für die Pfade beim ClassPath und bei der JAVA_HOME verwende? Bisher konnte ich zumindest mit den Einträgen, die ich bei der Suche im Web gefunden habe, nichts mit anfangen.

Hättet ihr einen Lösungsvorschlag?

Vielen Dank und entschuldigt diese dämliche Frage

cotopaxi
 
Zuletzt bearbeitet von einem Moderator:
Ich denke nicht, dass es etwas mit der Java runtime eniroment zu tun hat.

Wie startest du das Programm? Aus eclipse oder aus command line shell?
Hast du den pfad deines ausführbaren Programs und alle libraries in den classpath aufgenommen?
 
Hi,

...kann ich die main-Methode nicht ausführen

Die Einstellung kannst du in Eclipse machen:
wenn du eine Klasse neu anlegst, gibt es weiter unten im "New Java Class" Fenster die Optionen
"Which method stubs would you like to create?"
Und da musst du dann ein Häckchen setzten bei "public static void main(String[] args)"

Probier das doch einfach mal aus

mfg
 
Ich denke nicht, dass es etwas mit der Java runtime eniroment zu tun hat.

Wie startest du das Programm? Aus eclipse oder aus command line shell?
Hast du den pfad deines ausführbaren Programs und alle libraries in den classpath aufgenommen?

Hi,

ich habe das Programm jeweils in der Kommandozeile und unter Eclipse gestartet, bei beiden Varianten taucht die Fehlermeldung auf.
Die main-Methode hatte ich auch beim Erstellen der Klasse ("New Class"...) automatisch generieren lassen.

Ich bin ehrlich gesagt etwas aufgeschmissen gerade.

Gruß cotopaxo
 
Dann zeig mal dein Code und Classpath oder am besten das ganze Projekt falls es nicht zu gross ist. Hast du das Program mit derselben jvm ausgeführt wie du kompiliert hast?
 
Hi,

da ich selbst bei einer einfachen Stringausgabe in einer neuen Main-Methode die gleiche Fehlermeldung erhalte, dürfte es an den gesetzten Pfaden liegen, die jedoch für die Java-Umgebungsvariable und den Classpath richtig zu sein scheinen.

JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64/bin/java

und

PATH=/usr/lib/jvm/java-1.6.0-openjdk-amd64/bin

Gruß cotopaxo
 
Ausser dem Einwand von Landei, weiss ich ohne zusätzlichen Informationen auch nicht mehr weiter.

Meldet Eclipse keine Fehler auf dem Projekt, das ev. der Build-Path invalid ist?

Sonst würd ich mal ein anderes JDK verwenden. Ev. ist das 'java-7-openjdk-amd64' ja korrupt.

Welche Implementation ist vom System als default gesetzt? Was ist die Ausgabe von
Code:
which java
?
 
Ausser dem Einwand von Landei, weiss ich ohne zusätzlichen Informationen auch nicht mehr weiter.

Meldet Eclipse keine Fehler auf dem Projekt, das ev. der Build-Path invalid ist?

Sonst würd ich mal ein anderes JDK verwenden. Ev. ist das 'java-7-openjdk-amd64' ja korrupt.

Welche Implementation ist vom System als default gesetzt? Was ist die Ausgabe von
Code:
which java
?

Hi,

es kam bisher keine andere Fehlermeldung in Eclipse als die von mir Beschriebene.

"which java" zeigt das Verzeichnis "/usr/bin/java" an.

Gruß und danke für Eure Geduld!

cotopaxo
 
"/usr/bin/java" dürfte ein symbolic link sein. Auf welche implementation referenziert dear link?

Hast du versucht es mit anderen jdks zum laufen zu bringen?
 
Hmm ... ich denke, dass es an deinen Einstellungen liegt, jedoch ohne Code und eindeutige Fehlerbeschreibung kann man hier schlecht helfen. Ich hatte das Problem auch schon einmal mit einem Projekt von mir. Und zwar fehlte mir eine Library zur Implementierung eines Layouts, die ich nicht eingebunden hatte, sodass er mir zum Einen eine Fehlermeldung ausgegeben hat, dass die Library fehlt und zum Anderen eine Fehlermeldung, dass die Main-Klasse nicht gefunden wurde.

Dabei stellte sich heraus, dass die Main-Klasse nicht wegen der Library nicht gefunden werden konnte, sondern aufgrund der Tatsache dass zwei JRE installiert waren. Ich würde vielleicht noch einmal überprüfen, ob alle Packages und Libraries mit eingebunden sind und ob du nicht doch eventuell mehrere Versionen der Virtuellen Maschine installiert hast.

MfG
 
Lass doch mal den Code rüberwachsen, ich bin zwar kein Pro, aber ich kann mir vorstellen das Fehler in der Main-Methode den Fehler zustandekommen lassen,
 
Hi, diese Fehlermeldungen habe ich auch manchmal.
Benutzt du eclipse? Wenn ja, versuch mal folgendes, mir hat das geholfen! Bei mir lag es einmal daran, dass ich eine benötigte Library in einen anderen Ordner verschoben hatte. Und ein anderes Mal lag es daran, dass ein InputStreamReader lief und sobald ein Error kam während der lief, konnte ich das Projekt nicht mehr builden. (Eclipse versucht regelmäßig deinen BIN-Ordner zu löschen!)

cyGuF.png


Die Fehlermeldung sollte sage, was das Problem ist.

Falls das nicht weiterhilft... weiß ich auch nicht. Aber wünsche dir dann viel Glück!
 
"/usr/bin/java" dürfte ein symbolic link sein. Auf welche implementation referenziert dear link?

Hast du versucht es mit anderen jdks zum laufen zu bringen?

Hi,

ja, hab es mit dem default-java und anderen Verzeichnissen versucht...vergebens. 🙁

Wie gesagt, auch wenn ich neue Projekte erstelle und eine main-Methode in einer Klasse erstelle, es taucht immer die gleiche Fehlermeldung auf. Ich kann gerne noch den Code anführen, aber ich kann mir nicht vorstellen, daß es daran liegt...

Gruß cotopaxo
 
Hi, diese Fehlermeldungen habe ich auch manchmal.
Benutzt du eclipse? Wenn ja, versuch mal folgendes, mir hat das geholfen! Bei mir lag es einmal daran, dass ich eine benötigte Library in einen anderen Ordner verschoben hatte. Und ein anderes Mal lag es daran, dass ein InputStreamReader lief und sobald ein Error kam während der lief, konnte ich das Projekt nicht mehr builden. (Eclipse versucht regelmäßig deinen BIN-Ordner zu löschen!)

cyGuF.png


Die Fehlermeldung sollte sage, was das Problem ist.

Falls das nicht weiterhilft... weiß ich auch nicht. Aber wünsche dir dann viel Glück!

Hi,

im Error-Log taucht komischerweis gar nichts auf, wenn ich die Mainmethode ausführen will.

Gruß Cotopaxo
 
Dann nochmal von vorne..

Werden die .class Dateien beim Compilieren im Outputfolder des Projekts erstellt? Auch wenn du sie vorher gelöschst hast?

Welches JRE/JDK ist im Projekt Build Path definiert?

Läuft der Workspace/Projekt auf einem andern PC (Windows/Unix)?

Wie gesagt du musst schon ein bischen mehr zeigen, wenn man dir helfen will.
 
Dann nochmal von vorne..

Werden die .class Dateien beim Compilieren im Outputfolder des Projekts erstellt? Auch wenn du sie vorher gelöschst hast?

Welches JRE/JDK ist im Projekt Build Path definiert?

Läuft der Workspace/Projekt auf einem andern PC (Windows/Unix)?

Wie gesagt du musst schon ein bischen mehr zeigen, wenn man dir helfen will.

Hi,

im Build Path in Eclipse ist JavaSE-1.6 eingestellt.

Wie gesagt, ich benutze eine Ubuntu-VM, mein Workspace-Verzeichnis liegt im Home-Verzeichnis.

Der Code der Implementierung (zum Testen):

Java:
public class JVMProblem {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		System.out.print("hallo");

	}

}

Im Error-Log steht zwar eine Fehlermeldung:

"Invalid preference page path: XML Syntax"

dies erfolgt aber nicht im Zusammenhang des Ausführens der Main-Methode.

Frage 1 ist mir nicht ganz klar...

Gruß cotopaxo
 
Hallo,

das Ausführen von Main-Methoden von projekten, die in einem anderen Workspace liegen, funktioniert. Immerhin weiss ich jetzt, daß es irgendwie an dem Workspace-Verzeichnis liegt...

Gruß cotopaxo
 
"Invalid preference page path: XML Syntax"

Eclipse Community Forums: Newcomers Error: Invalid preference page path: XML Syntax

I was able to fix it by creating a new workspace and then importing my project into it. If you had an original installation of Eclipse, then downloaded a new eclipse, readded all your android, ect. into it, you might get this error. Probably has to do with the XML with different keys from the old version in your hidden files in your workspace!
 
Dann lösche das .metadata Verzeichnis. Da scheint irgendwas ungültig zu sein.
Nach dem Neustart musst du zwar die Projekte neu importierten, aber danach sollte der Workspace wieder funktionieren!
 
Sicher das du beim Starten über Konsole das .class nicht mit angegeben hast? Also
Code:
java JVMProblem.class
anstatt korrekt
Code:
java JVMProblem
 

Neue Themen


Zurück
Oben