# Java wird nicht gefunden



## _Tom_Tom_ (23. Apr 2016)

Hi Leute,

vielleicht kann mir jemand weiterhelfen.

Ich arbeite mit Windows 10 und versuche gerade eine Software zu Starten die Java benötigt.

Wenn ich nun JDK 8u91 installiere und versuche das Programm zu Starten kommt immer noch die Fehlermeldung, dass kein Java vorhanden sei.

Wenn ich nun aber die JRE uber die Seite im Internet Explorer installiere_ (https://www._*java*_.com/de/download), lässt sich die Software starten.

Weiß jemand warum es nicht mit dem Development Kit geht.
_
MFG Thomas


----------



## udo-100 (23. Apr 2016)

Bei Windows muss der Classpath vom JRE im System eingetragen werden.
Vermutlich wird das bei der JRE-Installation automatisch gemacht.


----------



## _Tom_Tom_ (23. Apr 2016)

Hallo,

danke für deine schnelle Antwort. Hab das JDK nochmal installiert, hier wird die Path Variable  "C:\ProgramData\Oracle\Java\javapath" erstellt.
Nach der JRE Installation im Browser hab ich auch nochmal die Umgebungsvariablen nach einem Classpath durchsucht, aber auch keine gefunden. Ich folgere nun daraus, dass die Browserinstallation auch keinen Classpath erstellt, oder muss die Classpath-Variable nicht zwingendermaßend bei den Umgebungsvariablen definiert werden.

Gruß Thomas


----------



## JStein52 (23. Apr 2016)

Findet er denn "java" nicht ?  Falls ja hat das nichts mit dem classpath zu tun sondern mit "Path". Da solltest du nach jeder Installation mal kontrollieren wie das gesetzt ist. Und wie startest du denn dein Programm ? Durch Doppelklick auf eine Jar-Datei ? Durch Aufruf in einem Command-Window ?

Edit: kleine Anmerkung noch, bei mir hat es bis jetzt immer mit beiden funktioniert. Ich habe aber auch Windows 7, keine Ahnung ob das auch noch eine Rolle spielt.


----------



## Bitfehler (23. Apr 2016)

Mir ist hierbei überhaupt nicht klar, wo genau das Problem ist. Mal ist die Rede von JRE und mal von JDK. 
Zum Starten eines Java-Programms müsste es im Normalfall ausreichen, wenn ein JRE installiert ist. Man könnte die Version des vom System verwendeten JREs bspw mit dem Befehl "java -version" ermitteln. Dieser Befehl setzt voraus, dass ein entsprechender Pfad zum JRE in der Systemvariable "Path" vorhanden ist.


----------



## VfL_Freak (25. Apr 2016)

Moin,

es scheint sowieso div. Probleme mit der V91 zu geben:
http://www.java-forum.org/thema/grosse-und-seltsame-probleme-nach-java-update-auf-v1-8-0_91.172672/

Wir haben es hier in der Firma jetzt erstmal auf Eis gelegt !!

Gruß Klaus


----------



## Kanitrino (21. Jun 2016)

Hallo allerseits,

Ich möchte gern ein ähnliches Problem schildern, vielleicht kann sich jemand erbarmen, mir zu helfen.

Ich habe mich nach vier Jahren Pause aufgerafft, mit dem Programmieren weiterzumachen (ich hatte aufgehört wg. Frust).

Ich hielt es für angebracht, die neueste(n) Java-Version(en) runterzuladen, vom SDK und dem JDK ; dafür muss ich die Umgebungsvariablen neu setzen, das habe ich versucht. Ich habe Windows 7 und programmiere mit Eclipse (auch neu runtergeladen) und TextPad.

Derzeit ist der Stand, wenn ich eine Applikation compiliert habe und starten will, kommt die Fehlermeldung java.lang.NoClassDefFoundError, was ich auf einen Fehler beim Setzen des Path' zurückführe.

Ich habe runtergeladen
(1) C:\j2sdk1.4.2\bin
(2) C:\Program Files\Java\jdk1.8.0_92\bin
(3) C:\Program Files\Java\jre1.8.0_92\bin

ad (1) : Eigentlich habe ich verstanden, dass SDK-Version 1.4.2. veraltet sei. Ich hab es bei Oracle nochmal versucht runterzuladen, da wurden einige Updates hinzugefügt und die Versionsnummer beibehalten.

Nun habe ich in der Systemsteuerung die folgenden Umgebungsvariablen gesetzt, wobei ich mir einiges Wissen (?) zusammengegooglet habe, was die übliche aber nicht unbedingt die erfolgsversprechendste Methode ist.

Benutzervariablen (oben) :
JAVA_HOME :  (2)

Systemvariablen (unten) :
CLASSPATH : (2)
Path            : (1);(2);(3)  (neben vielen anderen Pfaden von Acer)

Wer kann mir den alles entscheidenden Tipp geben ?


----------



## JStein52 (22. Jun 2016)

Ich würde als erstes mal dieses j2sdk ersatzlos löschen. Wofür brauchst du das denn ?


----------



## VfL_Freak (22. Jun 2016)

Moin,


JStein52 hat gesagt.:


> Ich würde als erstes mal dieses j2sdk ersatzlos löschen. Wofür brauchst du das denn ?


Richtig, schließlich hat Du ja ein JDK installiert (jdk1.8.0_92)



Kanitrino hat gesagt.:


> kommt die Fehlermeldung java.lang.NoClassDefFoundError


Poste mal den gesamten Stacktrace!

Gruß Klaus


----------



## Kanitrino (22. Jun 2016)

JStein52 hat gesagt.:


> Ich würde als erstes mal dieses j2sdk ersatzlos löschen.


Das habe ich gemacht und auch den Pfad in der Systemssteuerung gelöscht. Der Erfolg ist durchschlagend : Wenn ich mein Programm über TextPad compiliere (geht offenbar) und starten will, kommt über das DOS-Fenster "Fehler : Hauptklasse HelloWorld konnte nicht gefunden oder geladen".

Wenn ich Eclipse öffnen will, kommt ein Windows-Fenster mit der Meldung : Failed to load the JNI shared library "C:\Program Files\Java\jdk1.8.0_92\bin\...\jre\bin\server\jvm.dll". Die entsprechenden Dateien und der Pfad sind noch da.

Offenbar hat dies nicht den erwünschten Effekt erbracht. Hat jemand einen besseren Vorschlag ?


----------



## Bitfehler (22. Jun 2016)

Kanitrino hat gesagt.:


> Wenn ich Eclipse öffnen will, kommt ein Windows-Fenster mit der Meldung : Failed to load the JNI shared library "C:\Program Files\Java\jdk1.8.0_92\bin\...\jre\bin\server\jvm.dll". Die entsprechenden Dateien und der Pfad sind noch da.


Besteht die Möglichkeit, dass du einmal 32 und 64 Bit Varianten verwendest? Dann kann nämlich ein Fehler dieser Art auftauchen.


----------



## Kanitrino (22. Jun 2016)

Aha ... interessant. welches ist denn die richtige Variante ?


----------



## Saheeda (22. Jun 2016)

Was hast du denn für ein Betriebssystem?
Unter Windows: Start --> Rechtsklick auf Computer --> Eigenschaften
Dort gibts nen Punkt "Systemtyp", wo die Version deines Betriebssystems steht.

Hast du ein 32er-System, brauchst du auch das Java fürs 32er-System und anders herum.


----------



## stg (22. Jun 2016)

Saheeda hat gesagt.:


> Hast du ein 32er-System, brauchst du auch das Java fürs 32er-System und anders herum.



Der erste Teil ist sicher richtig, der zweite Teil ist aber falsch. Auf meinem 64 bit System laufen auch 32 bit JDK/JREs


----------



## VfL_Freak (22. Jun 2016)

Richtig, ich habe in der Firma sogar nur die 32er Variante laufen ...

Wie sieht denn der BuildPath aus?
Wie sind Deine Umgebungsvariablen eingestellt ??


----------



## JStein52 (22. Jun 2016)

Das mit dem Löschen von dem Schrott-SDK würde wahrscheinlich schon den gewünschten Erfolg bringen wenn jetzt alles konsistent konfiguriert wäre. Aber offenbar sind einige Einstellungen noch falsch.
Da das kompilieren geht erwischst du ja wohl den richtigen javac.exe ...  Und wie startest du denn anschliessend dein kompiliertes Programm ? Und auch wo, in welchem Ordner ?


----------



## Kanitrino (22. Jun 2016)

Saheeda hat gesagt.:


> Hast du ein 32er-System, brauchst du auch das Java fürs 32er-System und anders herum.


Offenbar ist es ein 32-er System. Allerdings finde ich auf der Oracle-Seite nur "Windowsx86" und "Windowsx64". Sind das die Bits ?

Der Path in den Umgebungsvariablen lautet jetzt 





> C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\EgisTec MyWinLocker\x64;C:\Program Files (x86)\EgisTec MyWinLocker\;C:\Program Files\Java\jdk1.8.0_92\bin;C:\Program Files\Java\jre1.8.0_92\bin





JStein52 hat gesagt.:


> ...  Und wie startest du denn anschliessend dein kompiliertes Programm ? Und auch wo, in welchem Ordner ?


Ich habe es von TextPad aus kompiliert (-> es ensteht eine .class-Datei), sowohl vom D: -Laufwerk aus, als auch von meinem Benutzerlaufwerk (C:\Users\[ich]) aus, beides geht nicht.

Von der Kommandozeile komme ich seltsamer Weise mit "cd d:" nicht ins D: -Laufwerk.


----------



## JStein52 (22. Jun 2016)

in der Kommandozeile gibst du zuerst ein:

>d:
>cd irgendwohin auf d:

steht die .class-Datei im gleichen Verzeichnis in dem du stehst wenn du java HelloWorld aufrufst ?


----------



## Kanitrino (22. Jun 2016)

Vielen Dank, oft stimmen Kleinigkeiten nicht ...
Ich habe es gemacht - es geht, endet aber mit derselben Fehlermeldung "Fehler : Hauptklasse HelloWorld konnte nicht gefunden oder geladen werden".


----------



## JStein52 (22. Jun 2016)

Wie rufst du dein Programm auf ? in welchem Ordner stehst du dabei ? wo steht die HelloWorld.class ?


----------



## Kanitrino (22. Jun 2016)

JStein52 hat gesagt.:


> Wie rufst du dein Programm auf ? in welchem Ordner stehst du dabei ? wo steht die HelloWorld.class ?


Die Applikation steht unter D:\Java-div\HelloWorld.java

Ich habe dann
(a) es mit TextPad geöffnet (so dass es zu sehen war), und dann den Menüpunkt Extras -> Java kompilieren, dann Extras -> Java-Programm starten angeklickt -> Fehlermeldung.

(b) auf der Kommandozeile
d:
cd Java-div
javac HelloWorld.java (keine Meldung, HelloWorld.class steht im Verzeichnis "Java-div")
java HelloWorld (Fehlermeldung)

Ich habe das Gleiche zu Testzwecken auch auf meinem Benutzerlaufwerk (C:\Users\[ich]) probiert.


----------



## JStein52 (22. Jun 2016)

Erstmal alles richtig. Und wie sieht deine HelloWorld.java aus ?


----------



## Kanitrino (22. Jun 2016)

so ... 
	
	
	
	





```
class HelloWorld
{
   public static void main(String[] args)
  {
    System.out.println("Hello World!");
  }
}
```


----------



## JStein52 (22. Jun 2016)

Ist bei dir eine Umgebungsvariable CLASSPATH gesetzt, falls ja wie ?  Da solltest du mal an die erste Stelle "." schreiben


----------



## Kanitrino (22. Jun 2016)

CLASSPATH    C:\Program Files\Java\jdk1.8.0_92\bin

Den Punkt vor das "C:" ?


----------



## Kanitrino (22. Jun 2016)

hab's ausprobiert, bringt nichts.

Aber ich habe jetzt gefunden in 
Start-> Systemsteuerung -> System& Sicherheit -> System : 
"Systemtyp : 64-Bit-Betriebssystem"


----------



## JStein52 (22. Jun 2016)

Was hast du probiert ? Wie sieht denn dein CLASSPATH aus ?


----------



## JStein52 (22. Jun 2016)

SWchreib mal ".;C:\Program Files\Java\jdk1.8.0_92\bin" da rein !!!!

Edit: und nachdem du das gemacht hast musst du das cmd-Window neu starten !


----------



## Kanitrino (22. Jun 2016)

JStein52 hat gesagt.:


> SWchreib mal ".;C:\Program Files\Java\jdk1.8.0_92\bin" da rein !!!!
> Edit: und nachdem du das gemacht hast musst du das cmd-Window neu starten !


Hurra, hurra !
Das Programm hat geantwortet, und zwar ... "Hello World !"

Herzlichen Dank !

(Könntest Du bitte vielleicht noch kurz kommentieren, was das Komma bedeutet ?)


----------



## Kanitrino (22. Jun 2016)

... aber wenn ich Eclipse öffnen will, erscheint immer noch 
Failed to load the JNI shared library "C:\Program Files\Java\jdk1.8.0_92\bin\...\jre\bin\server\jvm.dll"


----------



## JStein52 (22. Jun 2016)

Du meinst das Semikolon nach dem "." ? Dein CLASSPATH kann mehrere Pfade enthalten die mit Semikolon getrennt werden und in der angegebenen Reihenfolge abgearbeitet werden. In deinem Fall guckt er jetzt immer zuerst im aktuellen Verzeichnis.
Zu deinem Eclipse-Thema :  Wie alt ist das denn ? Also welche Version ? vielleicht solltest du da jetzt nochmal eine neueste Version runterladen. Und da vielleicht eine 64-Bit Version. Denn ich glaube dein Java ist auch eine 64-Bit Version.


----------



## Kanitrino (23. Jun 2016)

Hurra, alles funktioniert nun ! Nun kann es mit der Programmierung wieder losgehen (meine HP : www.kanitrino.de).


Ich fasse nochmal zusammen, was falsch war :
- Eclipse und Java mit 32 bits runtergelden, obwohl der Computer 64-System hat.
Ich hatte zwar gerade Eclipse (Mars) neu runtergeladen, aber das falsche. Nun habe ich dafür Neon.
- Java SDK habe ich wieder gelöscht.
- Im Path fehlte ein ".;"

Vielen Dank an alle, die mir geholfen haben.


----------



## VfL_Freak (23. Jun 2016)

Kanitrino hat gesagt.:


> Eclipse und Java mit 32 bits runtergelden, obwohl der Computer 64-System hat.


Hat auch wenig mit dem OS zu tun (außer dass kein 64-bit-Java auf einem 32-bit-OS laufen kann)


----------

