Java-Software - Windows -> Linux

Ocean-Driver

Ocean-Driver

Routinier
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:

Code:
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
 
Scanner ist glaube ich erst ab Java 5 dabei. Einfach mal die neuste Runtime installieren wäre mein Tipp
 
hi,

Hab anscheinend echt nur java4 drauf - gibts da irgendwas zu beachten beim Update? <-- Linux-Anfänger
 
Sollte normal alles dein Paketmanager Regeln aber bin mir auch nicht ganz sicher.
Alternativ kannst den BufferedReader verwenden den gabs schon damals
 
welches kommando?

Ohne zu wissen welches du meinst behaupte ich mal die Pathvariablen setzen, musst googlen gibt viele Anleitungen für
 
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
 
Zuletzt bearbeitet:
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
 
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).
 
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
 
... einfach nur java Test ohne das -jar mal versucht? ;)
 
Und ohne .class, wie ich bereits geschrieben habe...........
 
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
 
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:

Code:
java Test

__OHNE__ ".class"
 
Sorry, aber das haben jetzt sicher mehrmal leute geschrieben. Wenn du dich dermassen gegen einen gut gemeinten Rat querstellst, dann lass es lieber...
 
Zuletzt bearbeitet:
Hi,

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

und dann eine weitere Reihe von Fehlern.
 
Sofern der obige Quelltext noch Gueltigkeit hat:

Die .class-Dateien muessen im Verzeichnis "fameanzahl" liegen. Das schreibt das
Code:
package fameanzahl
vor. Um das zu starten, musst du dich im Verzeichnis darueber befinden und aufrufen mit
Code:
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.
 

Ähnliche Themen

Problem mit Texteingabe

skript aus der kommandozeile starten

Festplatte stirbt, dd funktioniert nicht

Wieder mal Probleme mit yum

java programm vereinfachen

Zurück
Oben