当路径包含空间时如何在Windows 8的eclipse.ini中指定jdk路径


74

这不起作用-vm%JAVA_HOME%/ bin / javaw.exe

当路径包含空格(“程序文件”目录)时,如何在Windows 8上用完整路径替换%JAVA_HOME%


onkarjoshi.com/blog/84/… 您可以使用Windows命令行获取不带空格的路径。
Schabowy 2014年

为什么需要指定-vm参数。单独保留ini文件,而是设置JAVA_HOME环境变量。
JamesB 2014年

您是否尝试过%JAVA_HOME%\bin\javaw.exe反斜线?您设置了JAVA_HOME环境系统属性吗?
Braj 2014年

@Braj是的,我确实在计算机高级属性中设置了环境变量
user310291

看我的答案,您不需要设置环境变量。它对我来说很好。
Braj 2014年

Answers:


175

你有试过吗 不要将所有内容都放在一行中。

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

需要放置包含javaw或java可执行文件的文件夹。在带有eclipse 4.7.1的Ubuntu 18下,我能够使其运行:

-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

如果无效,请确认您已在-vmargs中添加以上行eclipse.ini


1
顺便说一下,这是我从android开发站点下载的Eclipse
user310291 2014年

6
我知道这个话题是老了,但我有同样的问题,其中没有一个解决方案在这里提到工作过-但我DID最终解决这个问题。首先,请注意,使用Windows环境变量“ JAVA_HOME”是首选方法,但是-vm也可以使用。原因/解决方案是:我使用的是Eclipse 64位版本,但是指向32位JRE-在安装后再指向64位JRE,一切正常。以为我会分享这个。
纽约比利'16

谢谢纽约比利。检查版本(32位或64位)非常重要。
Mohamed El-Beltagy

1
在eclipse.ini中使用正斜杠,在这种情况下(即使在Windows上)也不必转义路径,即C:/ Program Files / Java / jdk1.6.0_07 / bin
johnm

添加以上两行后,它就可以工作了。我的java home配置为1.6出于其他目的,但是我想使用eclipse neon IDE,因此可以解决问题。
Janath

50

在vm args上方添加vm条目,否则它将不起作用。即`

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

1
这行得通,参数的顺序是重要的(即:如果将-vm添加到文件末尾)
Enrique SanMartín16年

1
另外,请确保该路径位于-vm的下一行以及--launcher.appendVmargs上方,否则它将不起作用。-vm和路径空间分开,会产生问题。
Neha Vari

17

tl; dr

-vm选项必须与其它Eclipse特定的选项(如后发生-product--launcher.*等等),但之前-vmargs的选择,因为一切后,-vmargs被直接传递给JVM。-vm在单独的行上添加选项,并在下一行添加JDK可执行文件的路径;例如

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

细节

笔记

  • 路径在以下位置的新行中 -vm选项
  • 无需转义任何字符或使用斜杠(反斜杠就可以了)
  • 路径指向bin目录,而不是目录javaw.exe

陷阱JAVA_HOME

当您在eclipse.ini文件中未指定虚拟机时,您可能会认为使用了JAVA_HOME环境变量,但事实并非如此!
来自FAQ_How_do_I_run_Eclipse#Find_the_JVM

Eclipse不会查询JAVA_HOME环境变量。

而是将扫描Windows搜索路径。

建议
您可能会认为使用搜索路径是个好主意,因为它很灵活。
尽管这是事实,但也存在缺点,即可以通过安装或更新程序来更改搜索路径。
因此,我建议在eclipse.ini文件中。

查找虚拟机

之所以应指定bin目录而不是目录javaw.exe(由许多其他答案所建议),是因为启动器可以动态选择哪种方法是启动JVM的最佳方法。有关所有详细信息,请参阅启动程序的详细信息:

我们在该目录中查找:(1)default.ee文件,(2)Java启动器或(3)jvm共享库。

验证

您可以在“配置”对话框中验证正在运行的Eclipse实例使用的是哪个VM 。
在Eclipse中的氧气进入帮助-关于Eclipse -安装详细信息-配置

您将看到选择了哪个VM路径eclipse,例如:

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

1
tl; dr是非常不正确的。-vm应该不是在你的顶部eclipse.ini文件。根据本文档,“ -vm选项必须在其他特定于Eclipse的选项(例如-product,-launcher。*等)之后,但在-vmargs选项之前,因为-vmargs之后的所有内容都直接传递给JVM。” 还必须指向可执行文件,而不是目录。
Jeff Axelrod

根据以上评论编辑答案。
杰夫·阿克塞尔罗德

1
@JeffAxelrod感谢您的编辑-我不知道这一点
TmTron

8

我遇到了同样的问题,但无法解决,直到尝试以下方法:

  1. 请确保您放 -vm
  2. 然后按 Enter
  3. 然后贴上 C:\Program Files\Java\jdk1.6.0_07\bin\javaw.exe

1
谢谢!谁会重击“按ENTER重要”!我一直在-ini文件中添加-vm <path>,但找不到它。一旦我插入了换行符,它就起作用了!!是否指定javaw.exe都没有关系。
svaratech

6

如果您使用的是Mac,请执行以下步骤:

  1. 移至以下目录:

    /sts-bundle/STS.app/Contents/Eclipse
    
  2. 在STS.ini文件中显式添加Java主页:

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

确保不要在一行中添加所有语句



3

以上所有答案对我都无效。我的Eclipse火星是x64,但是我需要将注册表dll设置为x86,才能使用其他软件。

最后,我在快捷方式的末尾添加了-vm参数,从而达到了目的。

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

根据此文档, jvm.dll在某些情况下也可以使用。


感谢您
Vinod

2

即使您的%JAVA_HOME%包含空格,您也可以直接将整个字符串放在此处。

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

另外,您不必在路径中指定javaw.exe,只需提及它,直到bin自己在bin文件夹中找到javaw.exe为止。只需记住一件事,您提供的jdk版本应该与您使用的eclipse版本匹配。

如果您使用的是64位Java,请下载64位Eclipse。如果您使用的是32位Java,请下载32位Eclipse。


1

Windows虚拟机“ C:\ Program Files \ Java \ jdk1.6.0_07 \ jre \ bin \ javaw.exe”


1

我在“程序文件”下也有Windows 8.1和JDK。对我有用的是用8位内部MS-DOS名称替换文件夹的名称。

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

我意识到在cmd.exe中运行此后发生了什么

CD \
DIR P* /X

它回来了...

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

因此,我们可以找到如何使用包含空格的路径


0

尝试使用反斜杠来逃避空间。

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


0

转到cmd中的C驱动器根目录,键入dir / x,这将在~~下列出目录名称。使用它代替jdk路径中的Program Files。



-9

重新安装Java并选择一个没有空格的目标文件夹

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.