Programm mit cmd nicht ausführbar

Olminator

Mitglied
Hey, Ich bin ein kompletter Neuling. Bevor ich hier meine Frage gestellt habe, hab ich mich selber informiert. Allerdings weiss ich nicht wo das Problem ist.
Ich habe folgendes Problem:

Ich habe mir das neuste java development kit runtergeladen: jdk-7u1-windows-i586.exe.
Außerdem habe ich schon meine Umgebungsvariable geändert(per copy paste, fehler im pfad sind also ausgeschlossen).
Trotzdem geht keines meiner programmierten Systeme(welche ich nicht selber geschrieben habe, sondern kopiert)

Ich versuchte es schon einmal java mit der console auszuführen:
Javac geht!
aber bei Java <name> kommt

Exception in thread "main" .... error(ich hoffe ihr kennt den, sonst lad ich nochmal nen screen hoch

Mit eclipse klappen komischerweise ein paar von meinen programmen, und ein paar nicht(die untenstehende rechnung funktioniert mit eclipse! aber nicht mit cmd!!)



Gibt zwei Fälle
1. Fall: Das Problem liegt am Programmierten(tut mir leid, fehlersuche kann mal normalerweise selber, aber da bei mir noch garnichts per cmd lief, bitte ich darum kurz drüber zu fliegen.).

Java:
public class rechnung {
public static void main (String [] arguments) {
int x, y;
x = 10;
y = -1 + 23 * 33 + 3 * 7 * (5 + 6);
System.out.print ("Das Resultat ist ");
System.out.println (x + y);
}
}


1. Fall ist unlogisch, da das Programm ja per eclipse ohne probleme läuft.


2. Fall: Das Problem liegt irgendwo anders(allerdings funktioniert javac ja)


Ich bitte um Hilfe, da ich echt nicht mehr weiter weiß, und es für mich keine Logik bei den Fehlern gibt.

MfG Olm
 
Zuletzt bearbeitet:
Probier mal aus
Code:
arguments
mit
Code:
args
zu ersetzen.

Desweiteren solltest du deinen Code einrücken und Klassennamen mit einem Großbuchstaben beginnen (CamelCase).
 
Probier mal aus
Code:
arguments
mit
Code:
args
zu ersetzen.

Desweiteren solltest du deinen Code einrücken und Klassennamen mit einem Großbuchstaben beginnen (CamelCase).

Namen von Parameters sind Schall und Rauch. Wichtig ist nur der Typ! Das passt schon so.

TO: Sehr Sinnvoll die Fehlermeldung durch "..." zu ersetzen, sollen wir jetzt raten wo der Fehler ist?
 
Zuletzt bearbeitet:
Vielleicht die Fehlermeldung aus der Konsole kopieren und hier mit [c] tags einfügen.

Ansonsten könntest du mal [c]javap rechnung[/c] ausprobieren, also als Konsolenbefehl eingeben.

Oder schauen ob im Verzeichnis wo die Datei [c]rechnung.java[/c] liegt auch eine Datei [c]rechnung.class[/c] vorliegt.

Goodnight
P.
 
Was sind die Ausgaben von

Code:
javac -version

und
Code:
java -version
 
Also wenn ich den obenstehenden Code einfachmal in ein neues File reinkopier, kompilier, starte funktionierts perfekt. Liegt also an einem lokalen Problem.

Solltest aber, auch wie die oben stehnden Posts schon sagen, mal die ganze Fehlermeldung posten.
 
Erst mal danke für die zahlreichen Antworten
Hier weiter Infos:

Wie die Variable heißt ist egal.

Poste mal die genaue Exception.






die ausgabe von
javac -version ist:
javac 1.7.0_01

java -version:
java version "1.6.0_27"
Java(TM) SE Runtime Enviroment (build 1.6.0_27-b07)
Java HotSpot(TM) Client VM (build 20.2-b06, mixed mode, sharing)


und ja, eine class datei liegt nach der compelierung vor im selben ordner vor.
 
Sieht so aus, als würdest Du die Datei mit einer neueren Version kompilieren als Du sie ausführst. Die Versionen sollten aber gleich sein.
Edit: Vllt. kannst Du ja mal testen ob es geht, wenn Du statt javac und java den jeweils vollständigen Pfad zu den Programmen angibst. Wie Du das Standardverzeichnis änderst, wo Windows nach den Programmen suchen soll, weiß ich leider nicht.
 
Zuletzt bearbeitet:
@Olminator: Schau' mal im Windows- und den Unterverzeichnissen nach einer
Code:
java.exe
. Dort liegt gerne mal eine 'rum.
Falls ja - löschen oder zumindest umbenennen.
 
@Olminator: Schau' mal im Windows- und den Unterverzeichnissen nach einer java.exe . Dort liegt gerne mal eine 'rum.
Falls ja - löschen oder zumindest umbenennen.



Danke, das war die Lösung. Problem erledigt.
Eine Frage noch, damit ich auch verstehe woran es lag.
Warum gab es dort ein Konflikt?
 
Naja, wenn du unter windows java eingibst sucht es eben solange im Path, ( %PATH% - Variable) nach einem Programm das Java heißt, bzw. java.exe, java.bat, java.cmd etc.

Und da Windows in manchen Versionen Java mitliefert, oder andere Programme ein Java installieren, kann es sein das eben auch eine Java.exe irgendwo landet, die man über den %PATH% erreichen kann.

Und so wie es scheint, sind mit Java7 kompilierte Dateien nicht zwangsweise mit Java6 ausführbar.

Wenn du nun ein JDK7 hast kannst du dennoch für Rechner mit einer JRE6 kompilieren, indem du die Zielplattform angibst.

Wenn du nur Javac eingibst bekommst du eine Auflistung aller optionen. Die für dich interessante ist
Code:
  -target <release>          Generate class files for specific VM version

Um nun für java6 zu kompilieren, gibst du also folgendes ein

Code:
javac -target 1.6 rechnung.java

was du mit
Code:
java rechnung
ausführen kannst
 
Da du mit Eclipse kompilierst, kannst du das in den Project-Properties->Java Compiler -> dann Häkchen weg bei "Use compilance from execution.." und dann bei der Dropbox 1.6 oder 1.5 auswählen.. Je nachdem ob du schon 1.6 Java-Code verwendest...
 

Zurück
Oben