ubuntuusers.de

Java Virtual Machine

Status: Gelöst | Ubuntu-Version: Ubuntu 7.04 (Feisty Fawn)
Antworten |

El_Nakhla

Avatar von El_Nakhla

Anmeldungsdatum:
12. Dezember 2007

Beiträge: 401

Wohnort: 127.0.0.1

Ich habe ein Programm in Java über Eclipse geschrieben, was auch super funktioniert...
Natürlich gibt es (wie so oft) ein Problem:

Ich will das ganze Verfeinern (und dazu meine Programierkentnisse erweitern):

Jetzt soll es nämlich nicht mehr nur in der Eclipse Console gestartet werden, sondern beispielsweise im terminal, oder (noch besser) als eigenes Programm (aber nicht notwendigerweise - termianl würde reichen)

Java Programme im Terminal ausführen ist ja kein Problem, wir gemacht.. habe ich gedacht!
Jetzt wollte ich das machen, und er sagt, "ne, funktioniert nicht"
gut - aus Windows-Tagen wusste ich noch,d ass ich die Java Entwicklungsumgebung erst eingrichten musste...aber WIE?
Da ja bei Ubuntu nicht so viel mit Systemsteuerung ist, dachte ich, ich frage mal hier...!

Weil es doch sehr umständlich war:

Das ganze nocheimal, aber in kurz:

*Ich habe ein Java Programm geschrieben
*Es soll im Terminal geöffnet werden
*Ich weiß nicht, wie man Path-Einstellungen bei Ubuntu vornimmt um
*die Java-Umgebung einzurichten

Danke wieder im Vorraus!

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4686

Wohnort: Berlin

Fangen wir doch mal ganz von vorne an: Was hast Du versucht und was ist darauf hin passiert. Die Meldung "ne, funktioniert nicht" gab's sicherlich nicht. 😉 Die Wikiseite zu Java kennst Du schon?

El_Nakhla

(Themenstarter)
Avatar von El_Nakhla

Anmeldungsdatum:
12. Dezember 2007

Beiträge: 401

Wohnort: 127.0.0.1

O.K. - Entschuldigung!
Das war vielleicht doch etwas unpräzise ausgedrückt!

Also -Schritt für Schritt:

*Ich habe ein Programm in Java geschrieben, welches Vokabeln abfragt, indem es sie Zufällig aus einer .txt Datei ausliest und natürlich abfragt.
*Dieses Programm habe ich in Eclipse geschrieben, wo es auch super funktioniert hat - aber eben nur dort in der Console!
*Jetzt bin ich ins Terminal gegangen, und habe schlichtweg "java Trainer.class" ausprobiert, weil ich mich meinte zu erinnern, dass das so (zumindest bei Windows) funktionierte und ich in Google nichts gegenteiliges gefunden habe.
*Er gab mir folgende Fehlermeldung aus:

Exception in thread "main" java.lang.NoClassDefFoundError: Trainer/class

*Daraufhin habe ich alles andere auf's gerate Wohl ausprobiert, bis ich schließlich ganz vorne anfangen wollte und probiert habe die .java Datei zu Compilieren.
*Genau das habe ich versucht, mit "javac Trainer.java"
*Wieder eine Fehelrmeldung:

Das Programm javac ist folgenden Paketen enthalten:

  • java-gcj-compat-dev

    • gcj-4.1

      • jikes-sablevm

        • kaffe

          • sun-java6-jdk

            • jikes-kaffe

              • ecj

                • j2sdk1.4

                  • jikes-gij

                    • jikes-classpath

                      • sun-java5-jdk

                        • sun-java6-jdk ...//Das steht jetzt grad nicht mehr drin, aber ich bin mir eigentlich sicher, dass das da war!

                          • jikes-sun
                            Versuchen Sie: sudo apt-get install <ausgewähltes Paket>
                            Stellen Sie sicher, dass Sie das Paketdepot multiverse aktiviert haben.
                            bash: javac: command not found

*Also habe ich die Installation von sun-java6-jdk vorgenommen, und es wieder versucht!
*Die oben genannten Fehlermeldungen erschienen wieder

Jetzt, so beim schreiben fällt mir dann auch auf,d ass da was von Paketdepot Multiverse steht, wahrscheinlich nicht so ganz unwichtig!

Und zu der Java-Wiki:
Ganz ehrlich, ich hab sie mir durchgelesen - es zumindest versucht! Aber ich bin, was den Punkt Linux angeht noch keum bewandelt! Ich habe Ubuntu erst seit ca. 2 Wochen drauf und bin damit gleich in's kalte Wasser gesprungen, weil ich mich noch überhaupt nicht auskannte...
Also die Seite hilft mir nciht sehr viel... Ich brauchte schon ewig um zu verstehen, wie ich dinge Installiere!

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4686

Wohnort: Berlin

Die Fehlermeldung beim Ausführen kommt vom .class ─ es wird versucht die Klasse class im Paket Trainer zu starten. Die Dateinamenserweiterung darf man nicht mit angeben.

Wenn kein javac auf der Kommandozeile zur Verfügung steht, muss man eines der Pakete installieren. Das JDK von Sun ist wahrscheinlich eine ganz gute Wahl. Bevor Du Dich auf der Kommandozeile mit der Paketverwaltung herum schlägst, kannst Du auch mal eine der grafischen Alternativen, wie zum Beispiel Synaptic ausprobieren. Wenn Du mit dem Programm nach "sun jdk" suchst, solltest Du das Paket finden und sehen können, ob es jetzt schon installiert ist, oder nicht. Auf der Wikiseite steht auch wie man multiverse freischaltet.

El_Nakhla

(Themenstarter)
Avatar von El_Nakhla

Anmeldungsdatum:
12. Dezember 2007

Beiträge: 401

Wohnort: 127.0.0.1

Ok, danke! Du hattest schon mal zum Teil recht, die Installation von Sun Java 6 ist irgendwie abgebrochen, drum hats da nichts gemacht!

Aber, entschuldige, wenn ich nerve, kommt die nächste Fehlermeldung.

*Ich habe um es zu Testen eine HalloWelt.java erstellt und sie kompiliert, will ich die .class aber mit "java HalloWelt" ausführen bekomme ich folgendes:

Exception in thread "main" java.lang.UnsupportedClassVersionError: HalloWelt (Unsupported major.minor version 50.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

Und so oder so ähnlich sah auch das Ergebniss von meinem Ursprungsprogramm aus!

multiverse paketquellen seien bei 7.04 FF schon standartmäßig freigeschaltet, sagt er!

El_Nakhla

(Themenstarter)
Avatar von El_Nakhla

Anmeldungsdatum:
12. Dezember 2007

Beiträge: 401

Wohnort: 127.0.0.1

JAaaaaaaaaaa - Die "halloWelt" funktionier schon mal!
Die andere Probiere ich gleich aus!

Fragt mich nicht, was ich gemacht hab.. ich hab gesucht und herrausgefunden, dass der irgendwie trotzdem noch auf der java1.4.2 läuft und das via "sudo update-alternatives --config java" geändert...

oder so ähnlich... ich melde mich anchher wieder, ob das Vokabeltrainer Programm auch im Terminal Läuft!

_edit:

Zu früh gefreut!

Die hallo Welt läuft, aber bei dem Vokabltrainer bekomme ich wieder folgendes raus:

Exception in thread "main" java.lang.NoClassDefFoundError: Trainer (wrong name: VokabelProjekt/Trainer)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4686

Wohnort: Berlin

Es ist immer wichtig mit anzugeben wie die Meldung(en) zustande gekommen sind, also die genaue Eingabe, die zu dem Ergebnis geführt hat. Dann müssen Helfer nicht so viel raten. Ich versuch's mal mit Raten: Eclipse legt normalerweise ein Paket für das Projekt an. Kann es sein, dass Du versucht hast die Klasse "direkt" zu starten, statt über das Paket zu gehen? Richtig wäre wahrscheinlich in dem Verzeichnis, in dem das Paketverzeichnis VokabelProjekt liegt, java VokabelProjekt.Trainer zum Starten einzugeben.

El_Nakhla

(Themenstarter)
Avatar von El_Nakhla

Anmeldungsdatum:
12. Dezember 2007

Beiträge: 401

Wohnort: 127.0.0.1

DAAAAAAAANKE, DANKE, DANKE!!!!!

Du bist Genial! Hat funktioniert! Vielen Dank!
Entschuldige wegen der ungenauen Beschreibung, nächstes mal wird besser!

Antworten |