Es ist wieder einmal so weit: "eclipse.ini take 3" die Einstellungen schlagen zurück!
Eclipse Helios 3.6 und 3.6.x Einstellungen
Alt-Text http://www.eclipse.org/home/promotions/friends-helios/helios.png
Nach den Einstellungen für Eclipse Ganymed 3.4.x y Eclipse Galileo 3.5.x Hier finden Sie einen detaillierten Blick auf eine "optimierte" eclipse.ini Einstellungsdatei für Eclipse Helios 3.6.x:
( Mit "optimiert" meine ich, dass ich in der Lage bin, ein vollwertiges Eclipse auf unserer beschissenen Workstation bei der Arbeit auszuführen, einem alten P4 von 2002 mit 2Go RAM und XPSp3. Aber ich habe auch getestet, die gleichen Einstellungen auf Windows7 )
Eclipse.ini
WARNUNG Für Nicht-Windows-Plattformen verwenden Sie die Sun-eigene Option -XX:MaxPermSize
anstelle der Eclipse-eigenen Option --launcher.XXMaxPermSize
.
Das heißt: Es sei denn, Sie verwenden die neueste jdk6u21 bauen 7 . Siehe den Abschnitt zu Oracle weiter unten.
-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vm
C:/Prog/Java/jdk1.6.0_21/jre/bin/server/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Declipse.p2.unsignedPolicy=allow
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+CMSIncrementalPacing
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/Prog/Java/eclipse_addons
Anmerkung:
Anpassen der p2.reconciler.dropins.directory
in ein externes Verzeichnis Ihrer Wahl.
Siehe dies SO antworten . Die Idee ist, neue Plugins unabhängig von einer Eclipse-Installation in einem Verzeichnis ablegen zu können.
Die folgenden Abschnitte beschreiben, was in diesem eclipse.ini
Datei.
Die gefürchtete Oracle JVM 1.6u21 (vor Build 7) und Eclipse stürzt ab
Andrew Niefer hat mich auf diese Situation aufmerksam gemacht und eine Blog-Beitrag über ein nicht standardisiertes vm-Argument ( -XX:MaxPermSize
) und kann dazu führen, dass vms von anderen Anbietern überhaupt nicht starten.
Aber die Eclipse-Version dieser Option ( --launcher.XXMaxPermSize
) funktioniert nicht mit dem neuen JDK (6u21, es sei denn, Sie verwenden den 6u21 Build 7, siehe unten).
El endgültig Lösung ist auf der Eclipse Wiki und für Helios unter Windows mit 6u21 pre build 7 nur:
Das war's. Hier gibt es keine Einstellungen zu ändern (wiederum nur für Helios unter Windows mit einer 6u21 pre build 7 ).
Für Nicht-Windows-Plattformen müssen Sie auf die proprietäre Option von Sun zurückgreifen -XX:MaxPermSize
.
Das Problem beruht auf einer Regression: JVM-Identifizierung schlägt aufgrund von Oracle-Rebranding in java.exe fehl und ausgelöst Wanze 319514 auf Eclipse.
Andrew kümmerte sich um Fehler 320005 - [Launcher] --launcher.XXMaxPermSize: isSunVM
sollte für Oracle true zurückgeben aber das wird nur für Helios 3.6.1 gelten.
Francis Upton , ein weiterer Eclipse-Committer, reflektiert die gesamte Situation .
Update u21b7, 27. Juli :
Oracle hat die Änderung für die nächste Version von Java 6 rückgängig gemacht und wird sie erst in JDK 7 wieder einführen. .
Wenn Sie jdk6u21 bauen 7 können Sie auf die --launcher.XXMaxPermSize
(Eclipse-Option) anstelle von -XX:MaxPermSize
(die nicht standardisierte Option).
Die automatische Erkennung im C-Start-Shim eclipse.exe
sucht immer noch nach dem " Sun Microsystems
", aber mit 6u21b7 funktioniert es jetzt - wieder.
Im Moment behalte ich noch die -XX:MaxPermSize
Version (denn ich habe keine Ahnung, wann alle die Eclipse-Version auf den Markt bringen werden. rechts JDK).
Implizite `-Startup` und `-Launcher.library`
Im Gegensatz zu den vorherigen Einstellungen wird der genaue Pfad für diese Module nicht mehr festgelegt, was praktisch ist, da er zwischen verschiedenen Eclipse 3.6.x Versionen variieren kann:
- Startup: Wenn nicht angegeben, sucht die ausführbare Datei im Plugins-Verzeichnis nach dem
org.eclipse.equinox.launcher
Bündel mit der höchsten Version.
- launcher.library: Wenn nicht angegeben, sucht die ausführbare Datei in der
plugins
Verzeichnis für das entsprechende org.eclipse.equinox.launcher.[platform]
Fragment mit der höchsten Version und verwendet die gemeinsam genutzte Bibliothek namens eclipse_*
innen.
JDK6 verwenden
Das JDK6 ist nun ausdrücklich erforderlich, um Eclipse zu starten:
-Dosgi.requiredJavaVersion = 1.6
Este SO Frage berichtet von einer positiven Entwicklung für Mac OS.
+UnlockExperimentalVMOptions
Die folgenden Optionen sind Teil der experimentellen Optionen der Sun JVM.
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
Über sie wurde in diesem Bericht berichtet Blogbeitrag um Eclipse möglicherweise zu beschleunigen.
Siehe alle JVM-Optionen hier und auch in der offiziellen Java-Hotspot-Optionen-Seite .
Anmerkung: Die detaillierte Liste dieser Optionen berichtet, dass UseFastAccessorMethods
kann standardmäßig aktiv sein.
Siehe auch "Aktualisieren Sie Ihre JVM" :
Zur Erinnerung: G1 ist der neue Garbage Collector, der für das JDK 7 vorbereitet wird, aber bereits in der Version 6 von u17 verwendet wird.
Öffnen von Dateien in Eclipse über die Kommandozeile
Siehe die Blog-Beitrag von Andrew Niefer über diese neue Option:
--launcher.defaultAction
openFile
Dies sagt dem Launcher, dass er, wenn er mit einer Befehlszeile aufgerufen wird, die nur Argumente enthält, die nicht mit " -
", dann sollten diese Argumente so behandelt werden, als ob sie auf " --launcher.openFile
".
eclipse myFile.txt
Dies ist die Art von Befehlszeile, die der Launcher unter Windows erhält, wenn Sie auf eine Datei doppelklicken, die mit Eclipse verbunden ist, oder wenn Sie Dateien auswählen und " Open With
" oder " Send To
" Sonnenfinsternis.
Relative Pfade wird zuerst gegen das aktuelle Arbeitsverzeichnis und dann gegen das Eclipse-Programmverzeichnis aufgelöst.
Ver Wanze 301033 als Referenz. Ursprünglich Wanze 4922 (Oktober 2001, 9 Jahre später korrigiert).
p2 und der unsignierte Dialog Prompt
Wenn Sie dieses Dialogfeld bei der Installation Ihrer vielen Plugins leid sind:
, fügen Sie Ihre eclipse.ini
:
-Declipse.p2.unsignedPolicy=allow
Siehe dies Blogbeitrag de Chris Aniszczy und die Fehlerbericht 235526 .
Ich möchte anmerken, dass die Sicherheitsforschung die Tatsache unterstützt, dass weniger Aufforderungen besser sind.
Die Menschen ignorieren Dinge, die im Fluss der Dinge, die sie erledigen wollen, auftauchen.
Für 3.6 sollten wir keine Warnungen mitten im Arbeitsablauf einblenden - egal wie sehr wir sie vereinfachen, die Leute werden sie einfach ignorieren.
Stattdessen sollten wir alle Probleme sammeln, die nicht diese Pakete mit Problemen zu installieren und stattdessen den Benutzer zu einem Punkt im Arbeitsablauf zurückzubringen, an dem er Korrekturen vornehmen kann - Vertrauen hinzufügen, Sicherheitsrichtlinien lockerer konfigurieren, usw. Dies wird als sichere Inszenierung". .
---------- http://www.eclipse.org/home/categories/images/wiki.gif Alt-Text http://www.eclipse.org/home/categories/images/wiki.gif Alt-Text http://www.eclipse.org/home/categories/images/wiki.gif
Zusätzliche Optionen
Diese Optionen sind nicht direkt in der eclipse.ini
oben, kann aber im Bedarfsfall nützlich sein.
Das Problem der "user.home" unter Windows7
Wenn eclipse startet, liest es seine Keystore-Datei (in der Passwörter gespeichert werden), eine Datei, die sich in user.home
.
Wenn das aus irgendeinem Grund user.home
nicht ordnungsgemäß in einen vollständigen Pfad auflöst, lässt sich Eclipse nicht starten.
Ursprünglich aufgewachsen in diese SO-Frage Wenn dies bei Ihnen der Fall ist, müssen Sie die Keystore-Datei auf einen expliziten Pfad umdefinieren (keine user.home mehr, die beim Start aufgelöst werden muss)
Fügen Sie Ihr eclipse.ini
:
-eclipse.keyring
C:\eclipse\keyring.txt
Dies wurde verfolgt von Wanze 300577 wurde es in diesem Fall gelöst andere SO Frage .
Debug-Modus
Moment, es gibt mehr als eine Einstellungsdatei in Eclipse.
wenn Sie zu Ihrem eclipse.ini
die Option:
-debug
aktivieren Sie die Debug-Modus und Eclipse sucht nach eine andere Einstellungsdatei: a .options
Datei, in der Sie einige OSGI-Optionen angeben können.
Und das ist großartig, wenn Sie neue Plugins über den Dropins-Ordner hinzufügen.
Fügen Sie in Ihrer .options-Datei die folgenden Einstellungen hinzu, wie in diesem Abschnitt beschrieben Blogbeitrag " Dropins-Diagnose " :
org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true
P2 informiert Sie darüber, welche Pakete gefunden wurden in dropins/
Ordner, welcher Antrag gestellt wurde und wie die Installation geplant ist. Vielleicht ist es keine detaillierte Erklärung dessen, was tatsächlich passiert ist und was schief gelaufen ist, aber es sollte Ihnen gute Informationen darüber geben, wo Sie anfangen sollten:
- War Ihr Bündel in dem Plan enthalten?
- War es ein Installationsproblem (P2-Fehler)
- oder ist es vielleicht einfach nicht optimal, Ihre Funktion einzubeziehen?
Das kommt von Bug 264924 - [reconciler] Keine Diagnose von Dropins-Problemen , wodurch das folgende Problem endlich gelöst wird
Unzip eclipse-SDK-3.5M5-win32.zip to ..../eclipse
Unzip mdt-ocl-SDK-1.3.0M5.zip to ..../eclipse/dropins/mdt-ocl-SDK-1.3.0M5
Dies ist eine problematische Konfiguration, da OCL von EMF abhängt, das nicht vorhanden ist.
3.5M5 bietet keine Diagnose für dieses Problem.
Beginn der Sonnenfinsternis.
Keine offensichtlichen Probleme. Nichts im Fehlerprotokoll.
Help / About / Plugin
Details zeigt org.eclipse.ocl.doc
, aber nicht org.eclipse.ocl
.
Help / About / Configuration
Details hat keine (diagnostische) Erwähnung von org.eclipse.ocl
.
Help / Installation / Information Installed Software
hat keine Erwähnung von org.eclipse.ocl
.
Wo sind die schönen Fehlermarkierungen?
Manifest-Klassenpfad
Siehe dies Blog-Eintrag :
- In Galileo (auch bekannt als Eclipse 3.5) begann JDT damit, den manifesten Klassenpfad in Bibliotheken aufzulösen, die dem Build-Pfad des Projekts hinzugefügt wurden. Dies funktionierte unabhängig davon, ob die Bibliothek dem Build-Pfad des Projekts direkt oder über einen Klassenpfad-Container hinzugefügt wurde, wie z. B. die von JDT bereitgestellte Benutzerbibliotheksfunktion oder eine von einem Drittanbieter implementierte.
- In Helios wurde dieses Verhalten geändert, um Klassenpfad-Container von der Manifest-Klassenpfadauflösung auszuschließen.
Das bedeutet, dass einige Ihrer Projekte möglicherweise nicht mehr in Helios kompiliert werden können.
Wenn Sie zum Galileo-Verhalten zurückkehren wollen, fügen Sie hinzu:
-DresolveReferencedLibrariesForContainers=true
Ver Wanze 305037 , Wanze 313965 y Wanze 313890 für Referenzen.
IPV4-Stapel
Este SO Frage erwähnt eine mögliche Lösung, wenn der Zugriff auf Plugin-Update-Seiten nicht möglich ist:
-Djava.net.preferIPv4Stack=true
Ich erwähne das hier nur für den Fall, dass es bei Ihrer Konfiguration hilfreich sein könnte.
Mögliche Optimierungen von JVM1.7x64
この記事 Berichte:
Fürs Protokoll: Die schnellsten Optionen, die ich bisher für meinen Benchmark-Test mit der 1.7 x64 JVM unter Windows gefunden habe, sind:
-Xincgc
-XX:-DontCompileHugeMethods
-XX:MaxInlineSize=1024
-XX:FreqInlineSize=1024
Aber ich arbeite noch daran...
8 Stimmen
Die neue und verbesserte
eclipse.ini
Einstellungen für Helios 3.6 finden Sie hier (unten, in einer neuen Antwort): stackoverflow.com/questions/142357/6 Stimmen
Es ist erstaunlich, dass die als nicht konstruktiv geschlossene Frage eine so hohe Bewertung hat...
1 Stimmen
Diese Frage wurde gestellt, als die letzte Antwort auf eine derartige Frage im Jahr 2008 lautete eclipsezone.com/eclipse/foren/t20732.html . Der Antwortsatz ist gewachsen, da neue Versionen von Eclipse und Java veröffentlicht wurden und die Antworten immer wieder aktualisiert wurden. Das Schließen der Frage führt dazu, dass die Antworten veraltet sind. Die einzige Möglichkeit, die mir einfällt, um diese Frage umzuformulieren, wäre, sie versionsspezifisch zu formulieren, was meiner Meinung nach noch schlimmer wäre, da dies dazu führen würde, dass mehrere Fragen im Grunde das gleiche Problem beantworten würden
10 Stimmen
Ich stimme zu - Fragen wie diese abzuschließen ist Wahnsinn - Wahnsinn Ich sage Ihnen - Fragen wie diese sind die nützlichsten und interessantesten auf dieser Website!
3 Stimmen
In der Begründung für die Schließung heißt es: "Wir erwarten, dass die Antworten im Allgemeinen Fakten, Referenzen oder spezifisches Fachwissen beinhalten". Ich denke, dass die Schließung dieser Frage weit hergeholt ist. Wir sollten vorsichtig sein, wenn wir die Zensurbefugnisse einsetzen. Ich würde sagen, dass es im Zweifelsfall besser ist, "das Wissen frei zu lassen" und offen zu sein.