So geben Sie den jdk-Pfad in eclipse.ini unter Windows 8 an, wenn der Pfad Speicherplatz enthält


73

Dies funktioniert nicht -vm% JAVA_HOME% / bin / javaw.exe

Wie kann ich% JAVA_HOME% unter Windows 8 durch den vollständigen Pfad ersetzen, wenn der Pfad Speicherplatz enthält (Verzeichnis "Programmdateien")?


onkarjoshi.com/blog/84/… Mit der Windows-Befehlszeile können Sie einen Pfad ohne Leerzeichen abrufen .
Schabowy

Warum müssen Sie das Argument -vm angeben? Lassen Sie die INI-Datei in Ruhe und setzen Sie stattdessen die Umgebungsvariable JAVA_HOME.
JamesB

Haben Sie es %JAVA_HOME%\bin\javaw.exemit einem Schrägstrich versucht ? Haben Sie die JAVA_HOMEEigenschaft des Umweltsystems festgelegt?
Braj

@Braj ja, ich habe die Umgebungsvariable in den erweiterten Eigenschaften des Computers festgelegt
user310291

Schauen Sie sich meine Antwort an, Sie müssen die Umgebungsvariable nicht festlegen. Es funktioniert gut für mich.
Braj

Antworten:


170

Hast du es versucht. Setzen Sie nicht alles in eine Zeile.

-vm
C:\Program Files\Java\jdk1.6.0_07\bin\

Sie müssen den Ordner ablegen, der die ausführbare Java- oder Java-Datei enthält. Unter Ubuntu 18 mit Eclipse 4.7.1 konnte ich es zum Laufen bringen mit:

-vm
/usr/lib/jvm/java-8-openjdk-amd64/bin
-startup
plugins/org.eclipse.equinox.launcher_1.4.0.v20161219-1356.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.500.v20170531-1133
-vmargs
-Xmx2G
-Xms200m
-XX:MaxPermSize=384m

Wenn es nicht funktioniert, bestätigen Sie bitte, dass Sie die obigen Zeilen zuvor -vmargsin hinzugefügt haben eclipse.ini.


1
Übrigens ist es Eclipse, die ich von der Android Dev Site heruntergeladen habe
user310291

6
Ich weiß , das Thema ist alt, aber ich hatte das gleiche Problem, bei dem keine der Lösungen hier gearbeitet erwähnt hatte - aber ich DID es schließlich lösen. Beachten Sie zunächst, dass die Verwendung der Windows-Umgebungsvariablen "JAVA_HOME" die bevorzugte Methode ist, aber -vm auch funktioniert. Die Ursache / Lösung war: Ich habe die 64-Bit-Version von Eclipse verwendet, aber auf eine 32-Bit-JRE verwiesen - nach der Installation und der Verweisung auf die 64-Bit-JRE hat alles gut funktioniert. Ich dachte, ich würde das teilen.
NYCBilly

Danke NYCBilly. Es ist sehr wichtig, die Version zu überprüfen (32-Bit oder 64-Bit).
Mohamed El-Beltagy

1
Verwenden Sie Schrägstriche in der Datei eclipse.ini. In diesem Fall müssen Sie (auch unter Windows) nicht dem Pfad entkommen, z. B. C: / Programme / Java / jdk1.6.0_07 / bin
johnm

Nachdem die beiden obigen Zeilen hinzugefügt wurden, funktionierte es. Mein Java-Home wurde für andere Zwecke als 1.6 konfiguriert, aber ich wollte Eclipse Neon IDE verwenden, also funktionierte der Trick.
Janath

50

Fügen Sie den Eintrag von vm über den vm-Argumenten hinzu, sonst funktioniert es nicht ..! dh `

    -vm
    C: \ Programme \ Java \ jdk1.7.0_75 \ bin \ javaw.exe
    --launcher.appendVmargs
    -vmargs
    -Dosgi.requiredJavaVersion = 1.6
    -Xms40m
    -Xmx512m

1
Dies funktioniert, die Reihenfolge der Argumente ist wichtig (dh: wenn das -vm am Ende der Datei hinzugefügt wird)
Enrique San Martín

1
Stellen Sie außerdem sicher, dass sich der Pfad in der nächsten Zeile von -vm und über --launcher.appendVmargs befindet, da er sonst nicht funktioniert. -vm und Pfadraum getrennt, es entsteht ein Problem.
Neha Vari

16

tl; dr

Die -vmOption muss erfolgen , nachdem die anderen Eclipse - spezifischen Optionen (wie zB -product, --launcher.*usw.), aber vor der -vmargsWahl, da alles nach -vmargswird direkt an die JVM übergeben. Fügen Sie die -vmOption in einer eigenen Zeile und den Pfad zu Ihrer ausführbaren JDK- Datei in der folgenden Zeile hinzu. z.B

-vm
C:\Program Files\Java\jdk1.8.0_161\bin\javaw.exe

Einzelheiten

Anmerkungen

  • Der Pfad befindet sich in einer neuen Zeile unterhalb der -vmOption
  • Es ist nicht erforderlich, Zeichen zu maskieren oder Schrägstriche zu verwenden (Schrägstriche sind in Ordnung).
  • Der Pfad zeigt auf das binVerzeichnis, nicht aufjavaw.exe

Gotcha JAVA_HOME

Wenn Sie in Ihrer eclipse.iniDatei keine virtuelle Maschine angeben , denken Sie möglicherweise, dass die JAVA_HOMEUmgebungsvariable verwendet wird, dies ist jedoch nicht der Fall!
Aus FAQ_How_do_I_run_Eclipse # Find_the_JVM

Eclipse konsultiert NICHT die Umgebungsvariable JAVA_HOME.

Stattdessen wird der Windows-Suchpfad gescannt.

Empfehlung
Sie halten es möglicherweise für eine gute Idee, den Suchpfad zu verwenden, da er flexibel ist.
Dies ist zwar richtig, hat aber auch den Nachteil, dass der Suchpfad durch Installieren oder Aktualisieren von Programmen geändert werden kann.
Daher empfehle ich, die explizite Einstellung in der eclipse.iniDatei zu verwenden.

Eine VM finden

Der Grund, warum Sie das binVerzeichnis und nicht das javaw.exe(wie in vielen anderen Antworten vorgeschlagen) angeben sollten , besteht darin, dass der Launcher dann dynamisch auswählen kann, welcher Weg der beste ist, um die JVM zu starten. Weitere Informationen finden Sie unter Details zum Startvorgang :

In diesem Verzeichnis suchen wir nach: (1) einer default.ee-Datei, (2) einem Java-Launcher oder (3) der gemeinsam genutzten jvm-Bibliothek.

Verfeinerung

Sie können im Konfigurationsdialog überprüfen, welche VM von Ihrer ausgeführten Eclipse-Instanz verwendet wird .
In Eclipse Oxygen gehen Sie zu Hilfe - Über Eclipse - Installationsdetails - Konfiguration

Sie sehen, welchen VM-Pfad Eclipse ausgewählt hat, z.

eclipse.vm=C:\Program Files\Java\jdk1.8.0_161\bin\..\jre\bin\server\jvm.dll

1
tl; dr ist ganz falsch. -vmsollte nicht oben in Ihrer eclipse.iniDatei sein. In dieser Dokumentation heißt es: "Die Option -vm muss nach den anderen Eclipse-spezifischen Optionen (wie -product, --launcher. * Usw.), jedoch vor der Option -vmargs auftreten, da alles nach -vmargs direkt an die übergeben wird JVM. " Muss auch auf eine ausführbare Datei verweisen, nicht auf ein Verzeichnis.
Jeff Axelrod

Bearbeitete Antwort per obigem Kommentar.
Jeff Axelrod

1
@ JeffAxelrod danke für die Bearbeitung - das war mir nicht bewusst
TmTron

8

Ich hatte das gleiche Problem, konnte es aber nicht lösen, bis ich Folgendes versuche:

  1. Bitte stellen Sie sicher, dass Sie setzen -vm
  2. Dann drücken Enter
  3. Und dann einfügen C:\Program Files\Java\jdk1.6.0_07\bin\javaw.exe

Vielen Dank! Wer hätte gedacht, dass "ENTER drücken ist wichtig"!? Ich habe der INI-Datei immer -vm <Pfad> hinzugefügt, sie konnte nicht gefunden werden. Sobald ich eine neue Zeile eingefügt habe, hat es funktioniert !! Es war egal, ob wir javaw.exe angegeben haben oder nicht.
Svaratech

6

Wenn Sie einen Mac verwenden, fahren Sie mit den folgenden Schritten fort:

  1. Wechseln Sie in folgendes Verzeichnis:

    /sts-bundle/STS.app/Contents/Eclipse
    
  2. Fügen Sie das Java-Home explizit in die STS.ini-Datei ein:

    -vm
    /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin
    -vmargs
    

Stellen Sie sicher, dass nicht alle Anweisungen in einer Zeile hinzugefügt werden



3

Alle obigen Antworten haben bei mir nicht funktioniert. Mein Eclipse-Mars ist x64, aber ich muss die Registrierungs-DLL für eine andere Software auf x86 setzen.

Am Ende habe ich -vm Argument am Ende der Verknüpfung gesetzt und das hat den Trick gemacht.

D:\mars\eclipse\eclipse.exe -vm "C:\Program Files\Java\jre7\bin\server\jvm.dll"

Laut diesem Dokument funktioniert jvm.dll in einigen Fällen auch.


Dieser funktioniert für mich für Spring Tool Suite Eclipse .. Danke
Vinod

2

Auch wenn Ihr% JAVA_HOME% Leerzeichen enthält, können Sie dort direkt die gesamte Zeichenfolge einfügen.

-vm
C:\Program Files (x86)\Java\jdk1.8.0_162\bin

Außerdem müssen Sie javaw.exe nicht im Pfad angeben, sondern nur erwähnen, bis bin javaw.exe im Ordner bin selbst findet. Denken Sie nur daran, dass die von Ihnen bereitgestellte JDK-Version mit der von Ihnen verwendeten Eclipse-Version übereinstimmen sollte.

Wenn Sie ein 64-Bit-Java verwenden, laden Sie 64-Bit-Eclipse herunter. Wenn Sie ein 32-Bit-Java verwenden, laden Sie 32-Bit-Eclipse herunter.


1

Windows-vm "C: \ Programme \ Java \ jdk1.6.0_07 \ jre \ bin \ javaw.exe"


1

Ich habe Windows 8.1 und mein JDK auch unter "Programme". Für mich hat es funktioniert, den Namen des Ordners durch den 8-stelligen internen MS-DOS-Namen zu ersetzen.

-vm
C:/PROGRA~1/Java/jdk1.8.0_40/bin/javaw.exe

Ich erkannte, was los war, nachdem ich dies in cmd.exe ausgeführt hatte

CD \
DIR P* /X

Es kehrte zurück ...

<DIR>          PROGRA~1     Program Files
<DIR>          PROGRA~2     Program Files (x86)

So können wir herausfinden, wie ein Pfad verwendet wird, der Leerzeichen enthält


0

Versuchen Sie, mit einem Schrägstrich aus dem Raum zu entkommen

C: \ program \ folder \ \ name \ java \ jdk \ bin


0

Wechseln Sie in Cmd zu C-Laufwerk root. Geben Sie dir / x ein. Dadurch wird der Verzeichnisname mit ~ .use anstelle von Programme in Ihrem JDK-Pfad aufgelistet



-9

Installieren Sie Java neu und wählen Sie einen Zielordner ohne Leerzeichen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.