PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java-Software - Windows -> Linux



Ocean-Driver
19.05.2007, 17:37
Hi,

Ich hab ein kleines Programm geschrieben was etwas berechnen soll.

Nur wenn ich in der Konsole ausführe gibts folgenden Error:

Exception in thread "main" java.lang.NoClassDefFoundError: java.util.Scanner at fameanzahl.Fameberechnung.main(Fameberechnung.java :17)

Das Programm sieht so aus:


package fameanzahl;
import java.util.Scanner;

public class Fameberechnung {


public static void main(String[] args) throws Exception{

//Strings für die Anwendungssteuerung
String status = "restart";
String erneut = "restart";


double fame;
fame = 0;
int siege;

Scanner s = new Scanner(System.in);

do
{

System.out.println("Bitte Geben sie an wie oft sie in folge gewonnen haben");
siege = s.nextInt();

if (siege <= 13)
{
switch (siege)
{
case 0: fame = 0;break;
case 1: fame = 1;break;
case 2: fame = 3;break;
case 3: fame = 6;break;
case 4: fame = 10;break;
case 5: fame = 16;break;
case 6: fame = 24;break;
case 7: fame = 36;break;
case 8: fame = 52;break;
case 9: fame = 72;break;
case 10: fame = 96;break;
case 11: fame = 124;break;
case 12: fame = 156;break;
case 13: fame = 192;break;
default: System.out.println("Gibts nicht.");
}
}

if (siege > 13)
{
fame = 192+40*(siege-13);
}

if (fame==0)
{
System.out.println("Da sie bisher nicht gewonnen haben, haben sie bisher keinen Fame erhalten.");
}
else
System.out.println("Sie haben in diesem Run "+fame+" gemacht");

System.out.println("Wollen sie das Programm erneut starten (restart) oder beenden (end)");
status = s.next();



} while (status.equals(erneut));

System.out.println("Programm beendet.");

}

}


Gibt es diese Funktion unter linux nicht?

Muss ich vorher noch was einrichten?
Andere Programme liefern ähnliche Fehler.

Ich hab FedoraCore 6

danke

mfg

ElektroPunk
19.05.2007, 17:41
Scanner ist glaube ich erst ab Java 5 dabei. Einfach mal die neuste Runtime installieren wäre mein Tipp

Ocean-Driver
19.05.2007, 17:46
hi,

Hab anscheinend echt nur java4 drauf - gibts da irgendwas zu beachten beim Update? <-- Linux-Anfänger

ElektroPunk
19.05.2007, 17:56
Sollte normal alles dein Paketmanager Regeln aber bin mir auch nicht ganz sicher.
Alternativ kannst den BufferedReader verwenden den gabs schon damals

Ocean-Driver
19.05.2007, 18:36
http://www.java.com/de/download/help/5000010500.xml

hab ich jetzt installiert jetzt findet er das kommando net mehr :(

ElektroPunk
19.05.2007, 18:57
welches kommando?

Ohne zu wissen welches du meinst behaupte ich mal die Pathvariablen setzen, musst googlen gibt viele Anleitungen für

Ocean-Driver
19.05.2007, 19:20
Hi,

Ok funktioniert jetzt :)

Nur, wie kann ich meine Files am besten kompilieren?

ich habe nen ordner "testsoftware" erstellt (Package testsoftware)

und die Klasse "Test.class" - wie kann ich das ganze jetzt kompilieren?
in der Test.Class steht der normale code drin

danke

mfg

ElektroPunk
20.05.2007, 19:14
Zum kompilieren brauchst du einenen Java Development Kit, kannst bei bei Sun runterladen. Kompilieren tust dann mit javac file.java. Die .class Dateinen sind das Ergebnis des kompilierens

musiKk
21.05.2007, 02:30
und die Klasse "Test.class" - wie kann ich das ganze jetzt kompilieren?
in der Test.Class steht der normale code drin

Was? Langsam. Du erstellst im Editor nur .java-Dateien. Die .class-Dateien erstellst du mit javac wie mein Vorgaenger beschrieben hat. Ausfuehren anschliessend mit dem Befehl java (die Datei dann ohne die Endung .class angeben).

Ocean-Driver
27.05.2007, 00:09
Hi,

Wenn ich jetzt im ordner testsoftware eine datei hab "Test.java"
und javac Test.java ausführe hab ich zwar eine Test.class, doch wenn ich Sie mit "java -jar Test.class" ausführe, krieg ich den Fehler "Invalid or corrupt jarfile Test.class"
Was muss ich tuen?
Danke

gattschardo
27.05.2007, 00:13
... einfach nur java Test ohne das -jar mal versucht? ;)

musiKk
28.05.2007, 16:56
Und ohne .class, wie ich bereits geschrieben habe...........

Ocean-Driver
28.05.2007, 19:01
Hi,

Ich hab die Test.java jetzt mal mit "javac Test.java" kompiliert und die Test.class dann mal mit "java Test.class" ausgeführt, erhalte allerdings als Fehler:
Exception in thread "main" java.lang.NoClassDefFoundError: Test/class

supersucker
28.05.2007, 19:17
Ja,

was würdest du davon halten, endlich mal ein Grundlagen-Tutorial zu java zu machen?!?



und die Test.class dann mal mit "java Test.class" ausgeführt, erhalte allerdings als Fehler:
Exception in thread "main" java.lang.NoClassDefFoundError: Test/class


Dir wurde in diesem Thread bereits gesagt, wie das ausgeführt wird:


java Test

__OHNE__ ".class"

musiKk
29.05.2007, 00:01
Sorry, aber das haben jetzt sicher mehrmal leute geschrieben. Wenn du dich dermassen gegen einen gut gemeinten Rat querstellst, dann lass es lieber...

Ocean-Driver
29.05.2007, 18:38
Hi,

Funktioniert aber auch nicht richtig -
Exception in thread "main java.langNoClassDefFoundError: Test (wrong name: testsoftware/Test)

und dann eine weitere Reihe von Fehlern.

musiKk
29.05.2007, 19:10
Sofern der obige Quelltext noch Gueltigkeit hat:

Die .class-Dateien muessen im Verzeichnis "fameanzahl" liegen. Das schreibt das
package fameanzahl vor. Um das zu starten, musst du dich im Verzeichnis darueber befinden und aufrufen mit
java fameanzahl.Fameberechnung
Fameberechnung ist dabei der Name der Klasse. Sollte die .java-Datei anders heissen als Fameberechnung.java, dann muss trotzdem der Klassenname verwendet werden.