# Textpad, classpath, java = Probleme



## camaleon (6. Okt 2009)

Hallo!

Ich werde demnächst beginnen Java zu lernen, deshalb hab ich mir jetzt Textpad runtergeladen. Wenn ich Java kompilieren gedrückt habe, erschien die Meldung "javac.exe kann nicht gefunden werden"
Hat nicht funktioniert also hab ich mir das Javapaket runtergeladen. Hab dann bei der Anleitung was falsch verstanden und meinen Wert von classpath versehentlich gelöscht.

Verzweifelt hab ich dann die javac.exe Datei in den Ordner System32 verschoben, da mein Pc sie dort vorerst nicht finden konnte.

Nun schreibt er folgendes, wenn ich Java kompilieren will:

Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'
has value '1.6', but '1.5' is required.
Error: could not find java.dll
Error: could not find Java 2 Runtime Environment.

Prozess beendet mit Exit-Code 2

Jetzt check ich gar nichts mehr!

Kann mir jemand helfen?

Vielen Dank schon mal!

LG
camaleon


----------



## maki (6. Okt 2009)

Hast du denn das JDK installiert?

Sowas


> Verzweifelt hab ich dann die javac.exe Datei in den Ordner System32 verschoben


solltest du auf keinen Fall machen.


----------



## Sneek (6. Okt 2009)

Ich glaube mit Javapaket meint er das JDK.
Ich würde dir raten das ganze nochmal neu zu installieren, dann den Classpath setzen (du weist wie das geht?) und dann kanns los gehen.


----------



## camaleon (6. Okt 2009)

Ja, java_ee_sdk-5_01-windows.exe und jxpiinstall-6u11-fcs-bin-b90-windows-i586-25_nov_2008.exe hab ich installiert, falls euch das was sagt.

Hab das javac.exe wieder aus system32 gelöscht.

Was soll ich tun? Was soll ich mit dem classpath wert machen? Weiß leider nicht wie man den neu setzt.

Danke für die rasche Antwort.

LG
camaleon


----------



## Sneek (6. Okt 2009)

Also das hier ist die aktuellste Version.

Die installierst du.
Den Classpath setzt du wie folgt. Systemsteuerung/System/Erweiterte Systemeinstellungen, dort klickst du unter Erweitert auf Umgebungsvariablen und fügst bei Systemvariablen die Variable "CLASSPATH" mit dem Wert "*Dein Laufwerk:\Ordner in den Java installiert wurde (in der Regel Program Files)\Java\jre6\lib\ext\QTJava.zip\jre6\lib\ext\QTJava.zip*"
Wenn du bereits eine solche Variable besitzt und diese einen Wert hat hängst du den Pfad einfach hinter ein ";" drann. Dann kannst du über die Konsole javac und java benutzen.


----------



## camaleon (6. Okt 2009)

Hey!

So, hab das alte jetzt deinstalliert und das neue aus deinem Link installiert. Auch den classpath hab ich wie von dir beschrieben eingegeben. Leider kommt immer noch die Meldung

Registry key 'Software\JavaSoft\Java Runtime Environment\CurrentVersion'
has value '1.6', but '1.5' is required.
Error: could not find java.dll
Error: could not find Java 2 Runtime Environment.

Was läuft da falsch?!
 Danke für eure Mühen!

Lg
camaleon

Edit: Achja, hat der PATH bei den Umgebungsvariablen auch was zu bedeuten? Dort ist ein ähnlicher Pfad eingespeichert.


----------



## Sneek (6. Okt 2009)

Kompillierst du in deiner IDE oder in der Windows Console?


----------



## camaleon (7. Okt 2009)

In Textpad kompiliere ich!

LG
camaleon:rtfm:


----------



## Sneek (7. Okt 2009)

Achso, dann musste du dort natürlich auch noch den Classpath setzen.
Im Moment kannst du nur in der Windows Console mittels "javac DeinLaufwerk:/DeinOrdner/DeineDatei*.java*" kompillieren und via "java DeinLaufwerk:/DeinOrdner/DeineDatei" die Datei ausführen.

Den Classpath musst du jetzt natürlich in Textpad auch noch setzen.

Google sagt dazu: Im Programm auf Configure klicken und dann auf Preferences. Dort kannst du unter Enviromental Variables den Classpath setzen.


----------



## michael06 (7. Okt 2009)

Hallo liebe Javagemeinde.
Ich habe den Classpath in der Systemsteuerung exakt auf das Verzeichnis gesetzt, in dem sich meine source-Dateien befinden. Im prompter befinde ich mich im Verzeichnis, in dem sich die javac.exe befindet. Gebe ich nun ein javac test.java erhalte ich den Fehler file not found test.java  . Jetzt bin ich baff. Ihr hoffentlich nicht und könnt mir bitte helfen.


----------



## Sneek (7. Okt 2009)

Liegt die Datei test.java auch in dem Verzeichnis? Wenn nicht, musst du nämlich noch den kompletten Pfad mit hinschreiben.


----------



## Murray (7. Okt 2009)

michael06 hat gesagt.:


> Ich habe den Classpath in der Systemsteuerung exakt auf das Verzeichnis gesetzt, in dem sich meine source-Dateien befinden. Im prompter befinde ich mich im Verzeichnis, in dem sich die javac.exe befindet. Gebe ich nun ein javac test.java erhalte ich den Fehler file not found test.java.


Der CLASSPATH dient dazu, *.class-Files zu finden und nicht etwa die Sourcen. javac.exe wird die zu übersetzende Datei im aktuellen Verzeichnis suchen, daher enwteder a) javac.exe dort aufrufen, wo dei Source-Files liegen oder b) beim Aufruf von javac.exe als Argument den vollständigen  Pfad zur Source-Datei mitgeben


----------



## michael06 (8. Okt 2009)

das habe ich falsch gedacht. Ich habe in der Tat angenommen, dass über den classpath die quelldatei test.java gefunden wird. Jo, danke :applaus:


----------



## michael06 (8. Okt 2009)

Hi, also, ist es so der Normalzustand, dass javac nur aus dem Installationverzeichnis heraus compiliert ( mit Pfadangabe zur Quelldatei) und java aber nur im Verzeichnis , wo die .class steht ? Etwas seltsam. Ich habe den Classpath in der Umgebungsvariable x-mal gecheckt. java test funktioniert nur , wenn der prompter auf dem Verzeichnis der test.class steht. Irgendwas stimmt da garantiert nicht. ???:L


----------



## Sneek (8. Okt 2009)

michael06 hat gesagt.:


> Hi, also, ist es so der Normalzustand, dass javac nur aus dem Installationverzeichnis heraus compiliert ( mit Pfadangabe zur Quelldatei) und java aber nur im Verzeichnis , wo die .class steht ? Etwas seltsam. Ich habe den Classpath in der Umgebungsvariable x-mal gecheckt. java test funktioniert nur , wenn der prompter auf dem Verzeichnis der test.class steht. Irgendwas stimmt da garantiert nicht. ???:L



Nein, da du den Classpath gesetzt hast kannst du javac von überall her starten.
Und Java kannst du auch überall verwenden, solange du immer den vollständigen Pfad mit angiebst.


----------



## bygones (8. Okt 2009)

Sneek hat gesagt.:


> Nein, da du den Classpath gesetzt hast kannst du javac von überall her starten.
> Und Java kannst du auch überall verwenden, solange du immer den vollständigen Pfad mit angiebst.



nix durcheinanderbringen.

wenn das JAVA_HOME\bin verzeichnis im Path sich befindet, dann kann man java(c) ueberall aus aufrufen.

Der classpath wird gebraucht, dass java(c) auch richtig arbeiten kann.


wenn man mit packages arbeitet und tief in der package struktur selbst ist wird java(c) nicht gehen.

ansonsten kannst du (wenn die PATH Variable richtig ist und er classpath richtig ist) von ueberall java(c) aufrufen und auch deine Klassen kompilieren


----------



## Sneek (8. Okt 2009)

K, wieder was gelernt, steck selbst noch nicht so tief in der Materie, und dachte es funktioniert so.


----------



## michael06 (9. Okt 2009)

Moiens. Vielleicht sehe ich ja auch den Wald...Also ich habe in den Umgebungsvariablen als Path und Classpath das Verzeichnis stehen, in welchem sich meine .java und .class Dateien befinden. Nicht den Pfad, in dem sich javac.exe und java.exe befinden. Als Namen der Variablen habe ich Path bzw. Classpath geschrieben. Dennoch kann ich javac nur aus dem Java\jdk1.6.0_16\bin Verzeichnis starten und muss den kompletten Pfad der Quelldatei angeben ???:L . Nee nee irgendwas stimmt da nicht. Hölft mich bitte :shock:


----------



## maki (9. Okt 2009)

> .Also ich habe in den Umgebungsvariablen als Path und Classpath das Verzeichnis stehen, in welchem sich meine .java und .class Dateien befinden. Nicht den Pfad, in dem sich javac.exe und java.exe befinden.


Wieso machst du denn so etwas???  :autsch:


----------



## michael06 (9. Okt 2009)

maki hat gesagt.:


> Wieso machst du denn so etwas???  :autsch:



Oh oh jetzt droht die erste Abmahnung  . Weil ich ehrlich gesagt nicht weiss, welchen Zweck Path und Classpath überhaupt erfüllen. :bahnhof:


----------



## maki (9. Okt 2009)

michael06 hat gesagt.:


> Oh oh jetzt droht die erste Abmahnung  . Weil ich ehrlich gesagt nicht weiss, welchen Zweck Path und Classpath überhaupt erfüllen. :bahnhof:


Das hat bygones in seinbem Post 16 doch bereits erklärt.
Am besten nochmal lesen


----------



## Michael... (9. Okt 2009)

michael06 hat gesagt.:


> Dennoch kann ich javac nur aus dem Java\jdk1.6.0_16\bin Verzeichnis starten


 Path ist eine Umgebungsvariable des Betriebssystems zum speichern der Pfade zu div Executables. Wenn Du also javac unabhängig davon in welchem Verzeichnis Du Dich befindest starten willst, dann muss der Ordner ...jdk1.6.0_16\bin in dieser Variablen gelistet sein.
CLASSPATH ist Java spezifisch und gibt an in welchen Verzeichnissen, Archiven, ... die Java Klassen zu finden sind - dabei ist noch zu beachten, ob Du mit Packages arbeitest oder nicht. Dementsprechend muss der java bzw. javac Aufruf angepasst werden.


----------

