Bin Anfänger :( und kann programm nicht ausführen :((
Sensei
- java
Grüß euch!
Bin absoluter Java anfänger und kann ein einfaches Programm (mit Euklid-Algorithmus) nicht ausführen. Kompilieren hat geklappt...!
Bekomme in dos stets die Fehlermeldung:
_____________________________________________________________________
D:\ToPr>java -cp . Euklid
Exception in thread "main" java.lang.NoClassDefFoundError: eprog/EprogIO
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
_____________________________________________________________________
Bitte helfts mir, weiß nicht, was ich tun soll,
ciao, Tobias
Grüß euch!
Bin absoluter Java anfänger
Wieso gibst du dann in einem Posting weiter unten im Forum eine
Antwort, wenn du dasselbe (bzw. ein ähnlich gelagertes Problem) selbst
nicht in den Griff kriegst?
D:\ToPr>java -cp . Euklid
Exception in thread "main" java.lang.NoClassDefFoundError: eprog/EprogIO
Was ist eprog/EprogIO? Wo kommt das her? Wo liegen die Dateien?
Hast du die Dateien (wie im genannten Posting angedroht) in dieses ext-
Verzeichnis kopiert? Laß das besser bleiben. Binde externe JAR-Files
über den Classpath ein (bzw. konfiguriere deine IDE so, daß sie das
für dich tut).
Was hat dieses komische "-cp ." bei deinem Aufruf zu suchen? Java
schließt das aktuelle Verzeichnis automatisch in die "Suche" nach class-
Dateien ein. Die Angabe ist nicht notwendig. Außer, du hast irgendwie
eine CLASSPATH-Umgebungsvariable definiert. Ich behaupte einfach mal,
daß diese unnötig ist. Schmeiß sie raus!
Nimm lieber die JAR-Datei (eprog.jar?) beim Aufruf des Interpreters
in den classpath auf, indem du den Aufruf so gestaltest:
java -cp eprog.jar Euklid
Wenn's nicht geht, frag einfach nach. Aber bitte mit etwas mehr
Informationen. Z.B. mit näheren Angaben zu diesem ominösen eprog.jar.
Programmcode wäre auch nicht schlecht!
Gruß
Slyh
Wieso gibst du dann in einem Posting weiter unten im Forum eine
Antwort, wenn du dasselbe (bzw. ein ähnlich gelagertes Problem) selbst
nicht in den Griff kriegst?
Weil ich das kompilieren (nach anfänglichen Problemen) dann selbst in den Griff bekommen habe.
Was ist eprog/EprogIO? Wo kommt das her? Wo liegen die Dateien?
Hast du die Dateien (wie im genannten Posting angedroht) in dieses ext-
Verzeichnis kopiert? Laß das besser bleiben. Binde externe JAR-Files
über den Classpath ein (bzw. konfiguriere deine IDE so, daß sie das
für dich tut).
Das hat mir aber erst das kompilieren ermöglicht; ich hab andere Orte für eprog.jar probiert (selbes Verzeichnis wie .java file, Ordner in dem der Compiler javac liegt)
Was hat dieses komische "-cp ." bei deinem Aufruf zu suchen? Java
schließt das aktuelle Verzeichnis automatisch in die "Suche" nach class-
Dateien ein. Die Angabe ist nicht notwendig. Außer, du hast irgendwie
eine CLASSPATH-Umgebungsvariable definiert. Ich behaupte einfach mal,
daß diese unnötig ist. Schmeiß sie raus!
das "-cp ." hab ich probiert, weil das in dem Thread unten jemand so angeraten hat.
Nimm lieber die JAR-Datei (eprog.jar?) beim Aufruf des Interpreters
in den classpath auf, indem du den Aufruf so gestaltest:
java -cp eprog.jar Euklid
Hab ich probiert, hat aber nicht geklappt!
Wenn's nicht geht, frag einfach nach. Aber bitte mit etwas mehr
Informationen. Z.B. mit näheren Angaben zu diesem ominösen eprog.jar.
Das tu' ich hiermit!
Programmcode wäre auch nicht schlecht!
Bitteschön:
_____________________________________________________________________
import eprog.*;
public class Euklid extends EprogIO
{
public static void main (String[] args)
throws EprogException
{
int x, y, rest;
print ("Zum berechnen des GGT bitte zwei Zahlen eingeben");
x = readInt ();
y = readInt ();
rest = x % y;
while (rest != 0)
{
x = y;
y = rest;
rest = x % y;
}
print ("Der GGT ist" + y);
}
}
_____________________________________________________________________
Gruß
Slyh
Danke für die Hilfe schon im Vorhinein,
Tobias
Hallo,
also, das funktioniert folgendermaßen:
Laß die JAR-Datei mal in dem Verzeichnis, in dem auch deine .java bzw.
.class-Datei ist.
Kompiliere die .java-Datei:
javac -classpath eprog.jar Euklid.java
(eprog.jar steht jetzt also im classpath. So findet der Compiler
alle darin enthaltenen Dateien. Sollten weitere .jar-Dateien
notwendig sein, so kannst du diese durch jeweils ein Semikolon
getrennt hintereinander schreiben. Statt .jar-Dateien kannst du
hier auch Verzeichnisse angeben. Dann werden alle darin
befindlichen class/java-Files miteinbezogen. Sollte deine Anwendung
aus mehreren Java-Dateien bestehen, wäre der Punkt hier auch schon
notwendig.)
(Hier ist jetzt der Punkt wichtig, weil er sonst die kompilierte
Euklid-Klasse nicht findet. Der Rest ist gleich wie beim
Kompilieren.)
Ich hoffe geholfen zu haben.
Das mit dem ClassPath ist zugegebenermaßen etwas gewöhnungsbedürftig.
Jede anständige IDE nimmt dem Benutzer jedoch diese Arbeit ab. Da
Anwendungen außerdem in der Regel komplett in einer .jar-Datei
ausgeliefert werden, ist der Aufwand der manuellen Angabe des
classpathes aber dort ohnehin hinfällig.
Gruß
Slyh
Hehe, hallo Sensei.
Mir gehts genauso :)
Hast du auch WinXP?
@Slyh: was meinst du mit IDE? Braucht man unbedingt eine IDE Festplatte? Ich hab nämlich eine SCSI.
@Sensei: mail mir doch mal wie du so weiterkommst: kitt@alieneye.net
Hallo,
Hast du auch WinXP?
Ich glaube nicht, daß das Problem beim verwendeten Betriebssystem
zur suchen ist. (Ausschließen möchte ich es aber auch nicht.)
@Slyh: was meinst du mit IDE?
IDE = Integrated Development Environment = Entwicklungsumgebung
Z.B. JBuilder oder Eclipse oder dergleichen.
Gruß
Slyh
Hallo,
Hast du auch WinXP?
Ich glaube nicht, daß das Problem beim verwendeten Betriebssystem
zur suchen ist. (Ausschließen möchte ich es aber auch nicht.)
@Slyh: was meinst du mit IDE?
IDE = Integrated Development Environment = Entwicklungsumgebung
Z.B. JBuilder oder Eclipse oder dergleichen.
Gruß
Slyh
Verstehe. Dachte du redest von der Festplatte :))
Naja, deine Version funktioniert jedenfalls komplett, aber es liegt sicher an WinXP. Bei ME und früher, wo man noch alles in die Autoexec.bat eingegeben hat, hat das alles bei mir noch funktioniert. Reibungslos.
[http:http://www.amazon.de/exec/obidos/ASIN/3519226421/qid=1035991303/sr=2-1/ref=sr_aps_prod_1_1/028-6543105-1923755]
Aber hallo...! ;)
[http:http://www.amazon.de/exec/obidos/ASIN/3519226421/qid=1035991303/sr=2-1/ref=sr_aps_prod_1_1/028-6543105-1923755]
Pappnase[tm]! So etwas kannst du dir getrost sparen, nicht einmal Links setzen kannst du, zudem postest du lächerliche URLs, anstatt dem Fragenden eine zielführende und hilfreiche Antwort zu geben. Pfui!
Keine Grüße.
Mathias
P.S. http://forum.de.selfhtml.org/archiv/2002/4/10155/#m56497