# Eclipse Problem



## Pascal198888 (30. Jul 2010)

Hallo Zusammen.
Habe mir Eclipse IDE for Java EE Developers heruntergeladen bekomme es aber nicht zum starten. Nach dem ich es entpack habe will er die Javaw.exe in dem Verzeichnes haben. Ich kopiere sie dort hin dann kommt zwar der Fehler nicht mehr aber die Eclipse.exe startet nicht bzw. ist im Taskmanager drin aber es erscheint nichts. Mein OS Win7 64bit Prof


----------



## Pascal198888 (30. Jul 2010)

Korrektur: es ist nicht im Taskmanager drin


----------



## maki (30. Jul 2010)

*verschoben*

Hast du denn Java installiert und JAVA_HOME gesetzt?
JRE reicht, aber das JDK wäre die bessere Wahl.

Ps: hatten hier erst kürzlich ein paar Threads zum Thema Windows 7 & Eclipse, einfach mal suchen.


----------



## Pascal198888 (30. Jul 2010)

Was heisst JAVA_HOME gesetzt?


----------



## Pascal198888 (30. Jul 2010)

So habe nun Java SDK 6.0 Update 20 installiert. Funktioniert immer noch nicht


----------



## Wildcard (30. Jul 2010)

Das SDK setzt AFAIK javaw nicht in den Systempfad. Installier dir eine JRE statt des JDK. Wichtig, die JRE muss zur Eclipse Version passen, also 32, oder 64 bit je nachdem was du runtergeladen hast.


----------



## Pascal198888 (31. Jul 2010)

So habe nun von Java-Downloads für alle Betriebssysteme diese version Windows 7/XP/Vista/2000/2003/2008 Offline  installiert, es wurde keine spezielle 64-Bit Version ausgewiesen. Ergebnis es funktioniert immer noch nicht.Fehler:"a java runtime environment jre or java development kit jdk must be available in order to run eclipse..." Mir ist ja klar was der Fehler aussagt. So habe nun auch versucht mal die ini mit folgendem Eintag zu modifizieren "-vm C:\Windows\SysWOW64\Javaw.exe" dann kam der Fehler:"the eclipse executable launcher was unable to locate its companion shared library". ICh weis nicht mehr weiter


----------



## Momolin (4. Aug 2010)

Hallo,



Pascal198888 hat gesagt.:


> "-vm C:\Windows\SysWOW64\Javaw.exe" dann kam der Fehler:"the eclipse executable launcher was unable to locate its companion shared library". ICh weis nicht mehr weiter



in der eclipse.ini muss das Argument zu einer Option in einer neue Zeile stehen, also


```
-vm
C:\Windows\SysWOW64\Javaw.exe
```

vgl. eclipse wiki

Grüße


----------



## Harald.Fischer (29. Mai 2012)

Hi,

der Thread scheint zwar schon lang tot, aber vielleicht stoßen andere ja wie ich auf ihn in ihrer verzweifelten Suche nach Hilfe, und deshalb hinterlass ich mal, was meine Probleme waren und was ich rausgefunden hab. Vieles ist zwar vielleicht eine Wiederholung, aber dann hat man's immerhin am Stück . Außerdem versuch ich, auch für die nicht-so-ganz-Auskenner narrensicher zu sein (die anderen mögen großzügig darüber hinweglesen ...).

Meine Ausgangslage:
 - Windows 7 SR1 64 Bit deutsch, darauf verschiedene JREs und JDKs, und Eclipse Helios (Eclipse 3.6) 32 Bit for Java Developers, keine wissentlich zusätzlich installierten Plugins.
 - Lief ohne feststellbare Probleme (allerdings - wie ich im Zuge der jetzigen Forschung gesehen hab, gab's jede Menge Exceptions in der .metadata/.log ...).
 - Wollte endlich updaten auf Eclipse Indigo (Eclipse 3.7.2), und in dem Zuge mal gleich auf 64 Bit (wenn schon).
 - Ich arbeite als Benutzer mit Admin-Rechten (nicht Administrator) und mit eingeschalteter UAC (User Account Control - auf deutsch glaube ich "Benutzerkontensteuerung", die Windows-Nachfragerei, ob es etwas Problematisches tun darf oder nicht).

Meine Probleme:
(Blöderweise schreib ich alles nachträglich zusammen und hab deshalb die einschlägigen Fehlermeldungen nicht mehr parat ; hilft hoffentlich trotzdem.)

1.) Eclipse findet beim Start das zu startende Produkt nicht; den Fehler-Dialog hab ich leider nicht mal mehr ansatzweise parat, zu lang her :/

2.) Eclipse findet beim Start seine "companion shared lib" nicht; Fehler-Dialog: "the eclipse executable launcher was unable to locate its companion shared library"

3.) Eclipse findet beim Start keine JVM; Fehler-Dialog vermutlich: "a java runtime environment jre or java development kit jdk must be available in order to run eclipse..."

4.) Eclipse findet keine Update-Sites; Fehlermeldung im .metadata/.log z.B.: "Connection to http://download.eclipse.org/eclipse/updates/3.7/p2.index failed on Connection reset. Retry attempt 0 started" mit einer java.net.SocketException ("Connection reset")

(meine) Erklärungen:
1.) lag daran, dass ich a) (unabsichtlich) nicht das Paket "Eclipse for Java Developer", sondern "Eclipse Classic" (oder so ähnlich) runtergeladen und installiert und b) (absichtlich) die eclipse.ini (siehe unten) mit der aus einer Sicherung (zuvor umbenanntes eclipse-Verzeichnis ...) abgeglichen hab, um meine früheren Einträge zu behalten. Dabei hab ich dann (aus Unkenntnis) das Argument von "-startup" oder "--launcher.library" verhunzt . Das hat den Launcher (der offenbar verschiedenste Eclipse's oder Eclipse-Konfigurationen oder eclipse-basierte Anwendungen oder was auch immer starten kann) beim Start dann angewiesen, ein Produkt zu starten, das gar nicht (mehr) installiert war. Sollte also bei sorgfältiger Installation nicht vorkommen (schäm).

2.) Dafür hab ich keine echte Lösung, nur eine Vermutung und Quasi-Lösung: Auf jeden Fall scheint das ein Windows 7- (wahrscheinlich auch Vista-) spezifisches Berechtigungsthema zu sein. Bei mir trat der Fehler dann nicht auf, wenn ich Eclipse mit Administrator-Rechten gestartet hab (Rechtsklick auf eclipse.exe oder einen Eclipse-ShortCut - auf deutsch "Verknüpfung" - beispielsweise auf dem Desktop > "Als Administrator ausführen"). Ich hatte das Problem aber eh nur bei einer 32 Bit-Eclipse (die ansonsten natürlich - bis auf Nicht-Wissen - exakt analog zur 64 Bit-Eclipse installiert war). Falls das bei euch auch der Grund ist, kann eine dauerhafte, aber natürlich völlig unbefriedigende Abhilfe sein, Eclipse grundsätzlich Administrator-Rechte zu erteilen (geht über die Eigenschaften der eclipse.exe oder des ShortCut: Rechtsklick z.B. auf eclipse.exe > Eigenschaften > Kompatibilität > "Programm als Admin ausführen"). Andere Lösungen, die man im Netz findet (siehe z.B. Vernon's blog: The Eclipse executable launcher was unable to locate its companion shared library) haben bei mir nicht funktioniert - die Cygwin-Lösung nicht, weil Cygwin (auf meinem PC) selbst zu wenig Rechte hat, die Änderung der Berechtigungsstruktur der DLL nicht, weil "weiß nicht", hat einfach nichts offensichtliches geändert.

Zusätzlicher Hinweis: Im Netz findet man ebenfalls Hinweise, dass man dieses Problem dadurch umgehen kann, dass man das ZIP-File mit Zippern wie 7zip oder ähnlichen statt mit Windows-Bordmitteln entpackt. Das kann ich nicht bestätigen - entweder ging's bei mir sowieso, oder auch andere Zipper konnten nicht helfen. Es mag aber durchaus sein, dass manche Zipper oder - bei entsprechenden Benutzer-Rechten - Windows selbst beim Entpacken direkt in den Programme-Baum zicken. Kann man ihnen eigentlich auch nicht verdenken (Stichwort "VirtualStore" - siehe unten), sowas macht man schließlich heutzutage auch nicht mehr! (Die Linux-Leute mögen fein stillschweigen: Auch wir kennen inzwischen Mechanismen wie rpm und installieren schon lang nicht mehr, indem wir ein tar-File auspacken!) Das ist meiner Meinung nach einer der ganz großen Kritikpunkte an Eclipse: Plattformunabhängig sein wollen (was ja wg. SWT eh nicht wirklich geht), aber DLLs verwenden, und dann aber wieder kneifen, wenn es um saubere Installation derselben geht! Ist es wirklich zu viel verlangt, nach Jahren mal endlich einen Installer zu basteln, der 1. sauber installiert und 2. korrekt UPDATED und Benutzer nicht im Regen stehen lässt, wie man das denn am besten bewerkstelligt?! Sogar NetBeans wird per Installer installiert, und die sind "purer" Java als Eclipse. (Sorry, musste ich jetzt mal loswerden - obwohl ich Eclipse an sich ja gegen z.B. NetBeans verteidige.)

3.) Liegt daran, dass Eclipse 1. überhaupt eine und 2. eine passende JVM finden muss. Passend heißt: Ein 32 Bit-Eclipse braucht eine 32 Bit-JVM, ein 64 Bit-Eclipse entspr. eine 64 Bit-JVM. Das ist Voraussetzung, ohne das geht sowieso nichts! Also ggf. eine passende JVM (JDK oder JRE - JDK ist besser, wenn man eh Java entwickeln will, weil dann z.B. die Quelldateien der VM-Klassen mitkommen, in die man doch gerne mal reinschaut) downloaden und installieren. Finden: Geht über verschiedene Mechanismen: a) PATH-Environment-Variable, übersteuert (vermutlich!) von b) JAVA_HOME-Environment-Variable, übersteuert (vermutlich!) von c) Eintrag in der eclipse.ini (steht im eclipse-Verzeichnis im Programme-Baum), übersteuert (vermutlich!) von d) Aufrufparameter (die Prioritäten könnten andere sein, aber so scheint's mir am logischsten); a) und b) übergeh ich mal, weil c) / d) in meinen Augen passender sind.

Für c) muss man zwei (in Worten: ZWEI!!) Zeilen in die eclipse.ini eintragen:
-vm
C:\Program Files......\<JDKoderJRE>\bin

Die zweite Zeile ist natürlich abhängig davon, wohin man Java installiert hat. Eine 32 Bit-JRE Version 6 könnte hier liegen:
C:\Program Files (x86)\jre1.6.0_23

Ein 64 Bit-JDK Version 7 z.B. hier:
C:\Program Files\jdk1.7.0_04

Ich hatte Erfolg mit dem JDK 1.7.0_04 (32 Bit / 64 Bit). Bestimmt geht aber auch ein Jxx 1.6.0_nn oder gar Jxx 1.5.0_nn, in der Beziehung ist Eclipse ja doch robust.

Wichtig:
 - keine Anführungszeichen um den Verzeichnisnamen (trotz enthaltener Leerzeichen!)
 - muss (anders als JAVA_HOME) mit "bin" enden - genau in diesem Verzeichnis muss ein java.exe oder javaw.exe stehen
 - die beiden Zeilen müssen (mindestens) _vor_ der Zeile "-vmargs" stehen, falls es die gibt, und sie dürfen natürlich nicht andere "Zweizeiler" trennen! (Ob's weitere Einschränkungen gibt, weiß ich jetzt nicht, kenn die eclipse.ini auch nicht per du.)

Und *ACHTUNG:* Wenn man die eclipse.ini mit einem "zu dummen" Editor - z.B. Notepad! - ändert und speichert, steht das Ergebnis anschließend mitnichten im eclipse-Verzeichnis im Programme-Baum, sondern im VirtualStore (Windows 7 lenkt alle nicht autorisierten Schreibversuche im Programme- und Windows-Baum unter der Decke in den "VirtualStore" um; der steht - benutzerabhängig - in C:\Users\<eigenerBenutzername>\AppData\Local\VirtualStore - einfach mal schauen, versteht man glaube ich sofort!).

Und *nochmal ACHTUNG:* Windows lenkt _Lesezugriffe_ eines Programms auf solche "selbst und nicht autorisiert geschriebenen" Dateien ebenfalls unter der Decke in den VirtualStore um - *aber nur*, wenn diese Dateien im Programme-Verzeichnis nicht schon existieren! Und das tut die eclipse.ini natürlich, stammt ja schließlich aus dem ZIP-File. Mit anderen Worten: eclipse.ini editieren, speichern *und dann aus dem VirtualStore in das eclipse-Verzeichnis zurückkopieren!* Sonst ist das Verzweiflungsrisiko hoch ...

d) Wirkt dadurch, dass man Eclipse beim Start Argumente übergibt. Das geht am einfachsten, indem man die in einen Shortcut für Eclipse einträgt - und da liegt auch der Nachteil dieser Methode gegenüber c): Wirkt natürlich nur, wenn man zum Start _genau diesen_ Shortcut verwendet (ich hab gern drei ...). Ist dafür aber im Prinzip wesentlich einfacher als c). Theoretisch (ich hab die Methode nicht ausprobiert und kann sie leider auch nicht leicht ausprobieren, weil ich c schon hinter mir hab und nicht die ganze Prozedur wieder rückwärts machen will :/) ergänzt man das "Ziel" eines Shortcuts um das VM-Argument. Wenn Eclipse beispielsweise in C:\Program Files\eclipse und Java in C:\Program Files\Java\jre1.7.0_04 installiert ist, sollte dieses "Ziel" lauten:
"C:\Program Files\eclipse\eclipse.exe" -vm "C:\Program Files\Java\jre1.7.0_04\bin"

Man beachte, dass jetzt die Anführungszeichen nötig sein sollten (weil das zunächst noch durch die Hände von Windows geht und die Leerzeichen zerhacken, was zusammenbleiben sollte - Programmierer sollten damit vertraut sein, andere sollten es einfach so schlucken ).

4.) Dafür hab ich leider *immer noch* keine Lösung - lässt mich bald verzweifeln!! Falls mir da jemand einen oder auch zwei passende Tipps hat: SEEEEHR GERNE. Ich denke aber, dass das nichts mit Eclipse zu tun hat, sondern ein lokales Netzwerk-Problem ist. Allerdings wüsste ich nicht, was ich noch tun kann - DNS, Firewall etc. hab ich so weit ich mich auskenne abgeklappert. Natürlich kann ich (z.B.) download.eclipse.org pingen oder im Browser öffnen, natürlich hab ich Eclipse schon alle Rechte in der Firewall (Avira Professional Security 2012, nebenbei) gegeben. Natürlich gehen auch andere Download-Sites nicht (Log4E, Mylyn, Oxygen, Eclipse Java Source Helper, HgEclipse). Temporäres Deaktivieren der Firewall bringt ebenfalls nichts, ebenso wenig das dauerhafte Ausschalten (die scheint allerdings im Untergrund trotzdem noch irgendwie aktiv zu bleiben, sicher nur zu meiner Sicherheit ...). Was sich nur ändert: Statt "Connection failed" kommt (manchmal - vielleicht sogar eh viel häufiger) "Unable to read repository at http://download.eclipse.org/eclipse/updates/3.7/content.xml." mit der SocketException-Meldung "Socket operation on nonsocket: recv failed".

Ach so: Ich weiß, dass ich Plugins auch manuell installieren kann (naheliegenderweise wieder durch Entpacken eines ZIP-Files ... funktioniert ja gut!). Ich mag es aber gerne lau (wenn ich das mal klauen darf), ehrlich gesagt, und finde es durchaus angenehm, wenn Eclipse sich um die Updaterei selbst kümmert. Und wenn ich das nicht falsch verstanden hab, tut es das _nicht_, wenn man schon selbst installiert hat. Immerhin konsequent - aber ebenfalls fragwürdig.

Herzliche Grüße und euch hoffentlich mehr Erfolg!
Harald


----------



## Wildcard (29. Mai 2012)

Zu 4), möglich das du einen defekten Mirror erwischst. Versuch mal dieses Propery als eine der VM Options in der eclipse.ini zu setzen:
Equinox/p2/HiddenOptions - Eclipsepedia

```
eclipse.p2.mirrors to disable the usage of mirrors when downloading artifacts. The default is true.
```
Also

```
-Declipse.p2.mirrors=false
```
Das ist vermutlich langsam, weil du direkt auf die Eclipse Main Update Site gehst, aber den Versuch ist es Wert.
Insbesondere wenn man mit vielen Entwicklern im Team (in der Firma) arbeitet, bietet es sich übrigens an die Eclipse Update Size selbst zu spiegeln.
Dann kann man auch verschiedene Varianten von Eclipse automatisch für das jeweilige OS zusammen bauen lassen und Eclipse mit all den Plugins die man im Team so verwendet leicht auf eine neue Version hochziehen.
Wir fahren zB sehr gut mit diesem Ansatz. Lohnt sich allerdings kaum wenn es nur um dich alleine geht...


----------



## Harald.Fischer (30. Mai 2012)

Hallo Wildcard,

danke für deinen Hinweis. Hab ihn grad ausprobiert, aber leider ohne Wirkung. D.h. der Fehler ist lt. .metadata/.log exakt der gleiche: SocketException mit "Connection reset" (mit und ohne Firewall - wie auch im folgenden immer).

Es wird aber noch schlimmer! Ich wollte jetzt wenigstens wieder meine normale Arbeit aufnehmen und hab mal mein erstes CVS-Projekt geöffnet. Und krieg prompt keine Verbindung zum CVS-Server (natürlich fragt mich die Firewall, ob sie durchlassen soll, und natürlich sag ich "ja"). Die Meldungen im .log:


```
Unable to locate secure storage module (org.eclipse.equinox.security.windowspasswordprovider).
```
(eine 
	
	
	
	





```
org.eclipse.equinox.security.storage.StorageException
```
).

Das kommt zweimal, und dann (von mir umbrochen)

```
org.eclipse.team.internal.ccvs.core.connection.CVSCommunicationException:
 Could not connect to :pserver:<meinUser>@<unserCVSServer>:<cvsRep>:
 Cannot connect to host:
 Connection timed out:
 connect
```

Das hat nun doch eine andere Güte - ohne CVS kann ich nicht arbeiten. So ein Mist!!

Ich glaube, früher schon mal irgendwo gelesen zu haben, dass das daran liegt, dass Eclipse (bzw. die dafür verwendete Windows-DLL) nicht auf den PasswordStore zugreifen könne, aber da lag das wohl daran, dass Eclipse von einem 32 Bit- auf ein 64 Bit-Betriebsystem umgezogen wurden, und der Store, der von einem 32 Bit-System geschrieben wurde, war auf dem 64 Bit-System nicht mehr dechiffrierbar. Ich hab zwar von 32 Bit- auf 64 Bit-Eclipse umgestellt, aber mein Windows ist und war 64 Bit, deshalb - denke ich! - passt das hier nicht so ganz. Dennoch: Kann ich Eclipse irgendwie irgendwo beibringen, dass es den PasswortStore ruhig re-initialisieren darf? Oder muss man das mit Windows-Mitteln machen? Wenn ja, weiß wer wie? Komplett löschen würde mir völlig genügen, ich hab keine Passwörter (oder Hashes oder irgend so was) gespeichert, die ich nicht alle wieder herstellen könnte.

Ich hab natürlich in Eclipse selbst schon mal rumgesucht und bin in den Einstellungen auf 
	
	
	
	





```
General > Security > Secure Storage
```
 gestoßen, hab da auch schon rumgespielt (ohne wirklich zu wissen, was ich da tu ...), nämlich per Button "Change Password..." die beiden Einträge "Windows Integration (64 bit)" und "UI Prompt" gechanged, aber das bewirkt nichts. Auch den da angegebenen Secure Store

```
C:\Users\<meinWinUsername>\.eclipse\org.eclipse.equinox.security\secure_storage
```
hab ich mir angesehen, der sieht auch vernünftig aus, so weit ich das beurteilen kann. Details gefällig? Gerne (neutralisiert):


```
#Equinox secure storage version 1.0
#Wed May 30 12:08:44 CEST 2012
/CVS/\:pserver\:<user>@<cvsServer>\:\\2f<repPath1>/login=\t,Zmg\=
/CVS/\:pserver\:<user>@<cvsServer>\:\\2f<repPath2>/login=\t,Zmg\=
/org.eclipse.equinox.secure.storage/windows64/encryptedPassword=\t,<einMD5-HashWert??>\=
/org.eclipse.equinox.secure.storage/windows/encryptedPassword=\t,<dito>\=
org.eclipse.equinox.security.preferences.version=1
/CVS/\:pserver\:<user>@<cvsServer>\:\\2f<repPath3>/password=org.eclipse.equinox.security.windowspasswordprovider\t<hürzel>\=,<knürzel>\=
org.eclipse.equinox.security.preferences.keyFactory=PBEWithMD5AndDES
/org.eclipse.equinox.secure.storage/verification/org.eclipse.equinox.security.windowspasswordprovider=org.eclipse.equinox.security.windowspasswordprovider\t<umma>\=,<gumma>
/CVS/\:pserver\:<user>@<cvsServer>\:\\2f<repPath1>/password=org.eclipse.equinox.security.windowspasswordprovider\t<hinz>\=,<kunz>\=
/org.eclipse.equinox.secure.storage/verification/org.eclipse.equinox.security.windowspasswordprovider64bit=org.eclipse.equinox.security.windowspasswordprovider64bit\t<kreti>\=,<pleti>
org.eclipse.equinox.security.preferences.cipher=PBEWithMD5AndDES
/CVS/\:pserver\:<user>@<cvsServer>\:\\2f<repPath2>/password=org.eclipse.equinox.security.windowspasswordprovider\t<oing>\=,<doing>\=
/CVS/\:pserver\:<user>@<cvsServer>\:\\2f<repPath3>/login=\t,Zmg\=
```

Aber zu mehr reicht der Mut nicht ... Darf ich z.B. unter "Contents" einfach das "Delete" drücken (Angst)?? Es gibt da übrigens keine Einträge.

So viel jetztma, und vielen Dank schomma!
Harald


----------



## Wildcard (30. Mai 2012)

> Aber zu mehr reicht der Mut nicht ... Darf ich z.B. unter "Contents" einfach das "Delete" drücken (Angst)?? Es gibt da übrigens keine Einträge.


Ja, ruhig Löschen, da sind nur Passwörter und Usernames drin. Wenn das nicht reicht, kannst du auch gleich die Dateien aus deinem Home Löschen, dann sollte der Secure Storage in jedem Fall neu initalisiert werden.


----------



## Harald.Fischer (1. Jun 2012)

Hallo Wildcard,
und hallo alle, die diesen Thread vielleicht beobachten,

mein letztes Problem ("4" oben) ist gelöst - und wie ich zuletzt immer stärker vermutet hab, hatte dieses mit Eclipse nichts zu tun. Meine Virenschutz-SW / Firewall (noch einmal oder genauer: Avira Professional Security 2012) war das Problem.

Falls jemand zufällig eine ähnliche Konstellation hat: Bei mir hat geholfen, die IPv6-Unterstützung im Browser-Schutz abzuschalten.

Trotzdem danke ich dir, Wildcard, für deine Bemühungen!
Harald


----------



## Harald.Fischer (4. Jun 2012)

Jetzt doch nochmal ich, obwohl der Thread ja eigentlich erledigt ist (wieso wird eigentlich der "als 'erledigt' markieren"-Button nicht aktiv??): Fairerweise sollte ich betonen, dass Avira an meinem Problem keine Schuld trifft, sondern dass ich die IPv6-Unterstützung aktiviert hab, obwohl unser LAN offenbar nicht vollständig IPv6-konform ist. Wie doch meistens ist man halt wieder mal selbst schuld ...

Grüße
Harald


----------



## Bile Demon (4. Jun 2012)

Harald.Fischer hat gesagt.:


> wieso wird eigentlich der "als 'erledigt' markieren"-Button nicht aktiv??



Höchstwahrscheinlich liegt das daran, dass du in einen alten Thread postest, den du nicht selbst eröffnet hast. Du kannst nur deine eigenen Threads als erledigt markieren.


----------

