# JDK x64 , Eclipse?



## wachteldonk (13. Mai 2011)

Hallo,

ichbin am verzweifeln. Habe Windows 7 un dhabe ursprünlich JDK für 32 Bit installiert. Da einige Programme damit Probleme hatten, habe ich es deinstalliert udn habe die 64 Bit VErsion installiert, die anscheined keienrlei Pfade setzt.

Wnen ich jetzt Eclipse 64 Bit starten will , krieg ich, anchdem ich den Pfad zum Folder selbst gesetzt habe folgenden Fehler:

Failed to load the JNI shared library

C:\Programme\Java\jdk1.6.0_25\bin\...\jre\bin\server\jvm.dll
Ich habe 
JAVA_HOME nach 
C:\Programme\Java\jdk1.6.0_25

Path erweitert auf
C:\Programme\Java\jdk1.6.0_25\bin

irgendwie klappt das aber trotzdem nicht.

Was mache ich falsch?


----------



## SE (13. Mai 2011)

Also erstmal : x64 ist schon mal nich so super weil 1) kein Browser-Plugin mitgeliefert wird da der IE der einzige 64-Bit Browser ist und Sun dafür kein extra Plugin erstellen will ... 2) mit dem JDK-x64 erstellte class-Files kann man aus welchem Grund auch immer nicht immer mit einer x86-VM starten *einiges geht , anderes nicht* ...
Aber was meinst du mit : "die 64er setzt keine Pfade" ... macht die normaler 32er auch nicht alleine. Oder bezihst du dich auf Eclipse ?
Da du ja den Installer vom 64-Bit Java gestartet bekommen hast ist dein System folglich auch 64-Bit. Frage wäre jetzt : welche Version genau ? Home Basic / Premium , Professional , Ultimate ? ... Ich weis nicht ob die x64er ne bestimmte Mindestanforderug hat ... aber du solltest auch nur mit dem x86-JDK entwickeln da dadurch sichergestellt ist das dann die damit erstellen class-Files auch mit anderes VM's laufen. Beim 64er wie gesagt musst du deine User drauf Hinweisen das x64-Java benötigt wird, welches die oben genannten Nachteile hat. Auch hat nicht jeder ein 64-Bit OS , z.B. XP ... gibt es als 64-Bit Version nur die US-Variante mit DE-Sprachpaket. Außerdem hat XP x64 einige Hardwaremacken *ich spreche aus Erfahrung*


----------



## genodeftest (13. Mai 2011)

@wachteldonk:
Das Problem mit dem Pfad ist bekannt. C:\Programme\Java\jdk1.6.0_25\bin ist nicht korrekt.
Bist du dir sicher, dass das JDK 64Bit vollständig und sauber deinstalliert ist? Zur Not den Ordner manuell löschen.

Wichtig ist, dass du Eclipse und Java vom gleichen Typ nutzt, also Eclipse x86 mit JDK x86 und Eclipse x64 mit JDK x64, weil Eclipse auch plattformabhängige Features des JDK nutzt.

Wenn das stimmt, solltest du überprüfen, dass in der Umgebungsvariablen %PATH% der Ordner innerhalb der JRE des JDKs angegeben ist, in dem die Datei "jvm.dll" liegt.


----------



## genodeftest (13. Mai 2011)

@ SPiKEe:
Ich muss dir massiv widersprechen, denn einiges von dem was du schreibst ist definitiv falsch:


> x64 ist schon mal nich so super weil 1) kein Browser-Plugin mitgeliefert wird


Falsch, bei Java x64 wird genauso wie bei Java x86 ein Browser-Plugin mitgeliefert.




> da der IE der einzige 64-Bit Browser ist


Nein. Firefox gibt es in 64Bit, genauso Chrome/Chromium/Iron (Die Entwickler von Chromium raten sogar dazu, nur x64 zu nutzen, siehe http://dev.chromium.org/developers/how-tos/build-instructions-windows ). Safari ist in x64 verfügbar. Außerdem sollte jeder OpenSource-Browser in x64 kompilierbar sein.




> 2) mit dem JDK-x64 erstellte class-Files kann man aus welchem Grund auch immer nicht immer mit einer x86-VM starten





> aber du solltest auch nur mit dem x86-JDK entwickeln da dadurch sichergestellt ist das dann die damit erstellen class-Files auch mit anderes VM's laufen.


Das ist definitiv falsch. Java ist Plattform- und Architekturunabhängig! Ob man den gleichen Code auf einer x64 oder x86 (oder ARM, SPARC, ...)-Plattform kompiliert ist völlig egal, es kommt immer das gleiche dabei heraus.
Das einzige, was an Java plattformabhängig sein kann, sind Verbindungen zu nativem Code, wie z.B. mit JNI. Aber das Java-Programm sollte so geschrieben sein, dass es Schnittstellen zu mehreren Architekturen und/oder Plattformen bereitstellt.




> Beim 64er wie gesagt musst du deine User drauf Hinweisen das x64-Java benötigt wird, welches die oben genannten Nachteile hat.


Nein, außer wenn du besonderen nativen Code verwendest.


----------



## SE (13. Mai 2011)

Gut ... mal davon abgesehen das du das auch in EINEN Post hättest schreiben können gehe ich deine Statements mal einzeln durch

Unterschied Java x86 und x64
Mach dir mal den Spass , geh auf die Orcale-Dev-Seite und lad mal das x64-JDK runter. Darin enthalten ist auch das x64-JRE. Du wirst sowohl in der 6er als auch in der 7er Version darauf hingewiesen das weder das x86-Plugin in x86-Browser noch ein nicht vorhandenes x64-Plugin in x64 Browser installiert wird. Versuchs ruhig mal ... ich habs beim neu Aufsetzen meines Win 7 Ulti x64 aus Lust am Spass getestet ... es trat genau diese Warnung auf.

andere 64-Bit Browser
Das ist mir persönlich sowas von egal ob es andere Browser-Hersteller mitlerweile geschafft haben ihre Produkte auf x64 zu compilen und zu linken weil ich keine anderen Browser nutze. Wer meint unbedingt einen NICHT-Systembrowser verwenden zu müssen um auf Sites surfen zu können deren Webmaster der selben Ansicht sind die tun mir leid. Das der IE nicht ganz W3C-konform ist wissen wir alle ... aber alle anderen Browser sind in der Lage speziell für IE geschriebene Site ebenfalls korrekt darzustellen. Dessweiteren erreicht der neue IE9 im ACID-3 Test 93-97 Punkte womit er mit dem FF oder Chrome gleichzieht und die korrekte Darstellung der meisten Seiten gesichert ist solange man die default-Einstellungen verwendet.

x64-Classes können nicht unter x86 ausgeführt werden
Nun ... ich hätte das nicht geschrieben wenn ich damit nicht schon Erfahrungen gesammelt hätte. Und dabei habe ich KEIN JNI verwendet. Ich kann es mir auch nicht erklären aber es scheint das einige Basisklassen des x64 zu ihren x86er Pondons nicht kompatibel sind.

TO nutz XP
Ähm ... soll ich dazu jetzt wirklich stellung nehmen ? Les dir bitte noch einmal den ZWEITEN Satz durch : "Habe Windows 7" ... also wie du jetzt auf XP kommst möchte ich erlich wissen.

XP Pro x64 mit DE-Languagepack != DE-Version
Ja ... das ist schon so ... XP x64 gibt es ausschließlich als PROFESSIONAL US-Version ... ein x64 Home wurde XP zum Glück erspart. Was die inkompatibilitätsprobleme angeht : meinst du nicht das es ein OS-Fehler ist wenn selber ganz normale USB-Massensticks nicht mehr richtig erkannt werden ? Ich würde da wirklich schon auf Fehler im Hause M$ schließen. Dessweiteren macht ein Languagepack ein System noch lange nicht zu einer vollen Sprach-Version in der das Sprachpaket installiert wurde. Zum Beispiel wird mit einem DE-Sprachpaket noch lange nicht die Tastatur und Ländereinstellung auf DE-DE geändert. Das muss man immer noch selbst machen. Auch bleiben viele System-interne Dinge unberühert *solche die ein "normaler" Anwender nicht verwendet. Schließlich habe ich auch von Hardwareinkompatibilität gesprochen ... nicht von Hardwarefehlern.

Wie gesagt : ich spreche beim Thema Java 64Bit aus Erfahrung.

Und zum Punkt HTTPS ANYWHERE : Es ist das beste Beispiel dafür das jeder für den FF nutzlose und schadhafte Plugins entwickeln kann. Man nehme nur mal die Greasemonkey-Scriptengine. Ein kleiner Fehler in einem Script kann dort schon sehr große Sicherheitslücken nach sich ziehen. Der IE hat hier wenigstens noch die Sperre das nicht-signierter Code oder solcher dessen Signierung nicht als gültig anerkannt wird da das entsprechende CA-Zertifikat nicht im Stammspeicher ist nicht ohne weiteres installiert werden kann. Das man für den IE natürlich nur ActiveX nutzen kann und nicht wie für FF normales C mag einige davon abschrecken es überhaupt zu versuchen, aber die die es denn noch tun haben schon einen sehr schweren Weg vor sich.


----------



## genodeftest (14. Mai 2011)

> Unterschied Java x86 und x64
> Mach dir mal den Spass , geh auf die Orcale-Dev-Seite und lad mal das x64-JDK runter. Darin enthalten ist auch das x64-JRE. Du wirst sowohl in der 6er als auch in der 7er Version darauf hingewiesen das weder das x86-Plugin in x86-Browser noch ein nicht vorhandenes x64-Plugin in x64 Browser installiert wird. Versuchs ruhig mal ... ich habs beim neu Aufsetzen meines Win 7 Ulti x64 aus Lust am Spass getestet ... es trat genau diese Warnung auf.


Auf Linux kein Problem, ich hab sowohl das 64Bit Browser-Plugin als auch das 32Bit Browser-Plugin problemlos installieren können.
Und die 64Bit JRE liefert definitiv auch für Windows ein Browser-Plugin mit: http://www.oracle.com/technetwork/java/javase/system-configurations-135212.html
Es wird nur nicht offiziell von 64Bit-Browsern unterstützt. Wenn du dir die Liste genauer anschaust fällt aber auf, dass die Browser meist Plugins unterstützen, die nicht offiziell von Oracle supported werden. Opera und Chromium fehlen bspw. auf der Liste, aber auch mit diesen Browsern stehen Java-Applets zur Verfügung.



> x64-Classes können nicht unter x86 ausgeführt werden


Das kann nicht sein. War deine Java-Installation fehlerhaft? ist die Path-Variable korrekt gesetzt? Bei Java 64Bit schein es bei der Installation häufiger zu passieren, dass die Pfade nicht korrekt installiert werden.



> Ich würde da wirklich schon auf Fehler im Hause M$ schließen.


Ich auch. Allerdings ist es ein Fehler in der Treiber-Schicht, nicht in der Hardware.



> HTTPS ANYWHERE


 Das gehört nicht in diesen Thread.


----------



## Anime-Otaku (14. Mai 2011)

Um auf das Problem zurück zu kommen...
@wachteldonk:
Eclipse benutzt im Normalfall das JRE zum starten.
Das Java das benutzt wird um eclipse zu starten, steht unter Systemsteuerung/Software/Java
 und da unter dem Reiter "Java".
Du kannst das Java was eclipse benutzt zum starten auch manuell in der eclipse.ini ändern.
Siehe dazu: http://wiki.eclipse.org/Eclipse.ini#Specifying_the_JVM


So nun zu x86/64bit Thema:
Größtenteils muss ich genodeftest Recht geben...
Java hat unter der 64bit-Variante ein Browser-Plugin.  Seit Java 6 Update 12.
http://java.com/de/download/faq/java_win64bit.xml
http://www.heise.de/developer/meldung/Java-Plug-in-unterstuetzt-jetzt-64-Bit-Browser-190157.html

64bit Browser gibt es einige das stimmt. Nur tut IE ihren Browser wirklich anbieten, in dem er automatisch mitinstalliert ist. Für FF, Chrome wird dieser noch nicht offiziell beworben/angeboten. 64bit Browser führen daher noch ein Schattendarsein könnte man sagen.

Java-Bytecode ist erst einmal platformunabhängig. Warum du spike ein Programm hattest was nicht kompatibel war hört sich seltsam an und würde ich so auch erst einmal nicht glauben.
Da eclipse unter anderem die platformabhängige SWT-Lib benutzt und auch sonst anbietet platformabhängige Plugins einzubauen, ist da die platformunabhängigkeit hinüber. 

Warum fangt ihr an über den XP 64bit Exoten zu reden? Wahrscheinlich kam genodeftest dadurch durcheinander, dass spike damit angefange hat davon zu reden.

@Spike
Jedem ist selbst überlassen, welchen Browser er/sie benutzt. Jeder Browser hat seine Vor- und Nachteile. Das hörte sich stark nach einer Browser War an und dafür ist das der falsche Ort.

*Ansonsten bleibt bitte aufm Teppich.*
Es ist niemandem geholen, wenn ihr wegen nem Herzkasper tot umkippt


----------



## genodeftest (14. Mai 2011)

> Warum fangt ihr an über den XP 64bit Exoten zu reden? Wahrscheinlich kam genodeftest dadurch durcheinander, dass spike damit angefange hat davon zu reden.


Ja, du hast Recht.


----------



## SE (14. Mai 2011)

Also ich versteh eine Sache hier immer noch nicht : seit WANN bitte setzt das JDK-Setup irgendwelche System-Varaiblen von alleine ?


----------



## genodeftest (16. Mai 2011)

Schau mal hier:
http://www.java-forum.org/einfuehru...umgebungsvariable-einstellen-windows-7-a.html


----------

