【问题标题】:How to specify jdk path in eclipse.ini on windows 8 when path contains space当路径包含空间时,如何在 Windows 8 上的 eclipse.ini 中指定 jdk 路径
【发布时间】:2014-06-04 03:39:19
【问题描述】:

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

当路径包含空格(“Program Files” 目录)时,如何在 Windows 8 上将 %JAVA_HOME% 替换为完整路径

【问题讨论】:

  • onkarjoshi.com/blog/84/… 可以通过windows命令行获取不带空格的路径。
  • 为什么需要指定-vm参数。保留ini文件并设置JAVA_HOME环境变量。
  • 你试过用反斜杠%JAVA_HOME%\bin\javaw.exe 吗?你设置了JAVA_HOME 环境系统属性了吗?
  • @Braj 是的,我确实在计算机高级属性中设置了环境变量
  • 看我的回答你不需要设置环境变量。它对我来说工作正常。

标签: java eclipse


【解决方案1】:

有时路径中的空格会产生问题。 您可以添加例如 -vm C:\progra~1\Java\jre1.8.0_112\bin\javaw.exe

【讨论】:

    【解决方案2】:

    tl;博士

    -vm 选项必须出现在其他 Eclipse 特定选项(例如 -product--launcher.* 等)之后,但在 -vmargs 选项之前,因为 -vmargs 之后的所有内容都直接传递给JVM。在自己的行中添加-vm 选项,并在下一行添加JDK executable 的路径;例如

    -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 的最佳方式。详情请见details of the launcher process

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

    验证

    您可以在 Configuration 对话框中验证正在运行的 Eclipse 实例使用了哪个 VM。
    在 Eclipse Oxygen 中转到 帮助 - 关于 Eclipse - 安装详细信息 - 配置

    你会看到eclipse选择了哪个VM路径,例如:

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

    【讨论】:

    • tl;dr 完全不正确。 -vm 应该位于您的 eclipse.ini 文件的顶部。根据this documentation,“-vm 选项必须出现在其他 Eclipse 特定选项(例如 -product、--launcher.* 等)之后,但在 -vmargs 选项之前,因为 -vmargs 之后的所有内容都直接传递给JVM。”还必须指向可执行文件,而不是目录。
    • 根据上述评论编辑答案。
    • @JeffAxelrod 感谢您的编辑 - 我不知道
    【解决方案3】:

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

    -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 中添加以上行。

    【讨论】:

    • 顺便说一下,我是从android开发网站下载的eclipse
    • 我知道这个话题很老,但我遇到了同样的问题,这里提到的解决方案都没有奏效 - 但我 DID 最终解决了它。首先,请注意使用 Windows 环境变量“JAVA_HOME”是首选方法,但 -vm 也可以。原因/解决方案是:我使用的是 Eclipse 64 位版本,但指向 32 位 JRE - 安装后,然后指向 64 位 JRE,一切正常。想我会分享这个。
    • 感谢 NYCBilly。检查版本(32位或64位)非常重要。
    • 在 eclipse.ini 中使用正斜杠,在这种情况下(即使在 Windows 上)您不必转义路径,即 C:/Program Files/Java/jdk1.6.0_07/bin跨度>
    • 添加以上两行后,它工作了。我的 java home 配置为 1.6 用于其他目的,但我想使用 eclipse neon IDE,所以这个技巧奏效了。
    【解决方案4】:

    在cmd中进入C盘根目录 输入目录 /x 这将使用 ~.use 列出目录名称,而不是 jdk 路径中的 Program Files

    【讨论】:

      【解决方案5】:

      解决方案在:How do I set the eclipse.ini -vm option?

      -vm C:\\bin

       -vm
      C:\<java_path>\bin
      

      必须是eclipse.ini中的第一件事

      【讨论】:

      • 你不必指定javaw.exe,给出bin的路径,它会在文件夹中找到javaw.exe。
      【解决方案6】:

      我遇到了同样的问题但无法解决,直到我尝试这个:

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

      【讨论】:

      • 谢谢!谁会想到“按 ENTER 很重要”!?我一直将 -vm 添加到 ini 文件中,但找不到它。一旦我插入一个换行符,它就起作用了!!是否指定 javaw.exe 无关紧要。
      【解决方案7】:

      即使你的 %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。

      【讨论】:

        【解决方案8】:

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

        1. 移动到以下目录:

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

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

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

        【讨论】:

          【解决方案9】:

          以上所有答案都不适合我。我的 Eclipse mars 是 x64,但我需要将注册表 dll 设置为 x86 以用于其他软件。

          最后,我将 -vm 参数放在快捷方式的末尾,这样就成功了。

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

          根据this docjvm.dll 也适用于某些情况。

          【讨论】:

          • 这个适用于我的 spring tool suite eclipse ..谢谢
          • 没有其他工作,因为快捷方式中的 VM 参数首先被拾取。我在快捷方式中删除了-vm,然后从SpringToolSuite4.ini 中提取了-vm
          【解决方案10】:

          我在“程序文件”下也有 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)
          

          所以我们可以找出如何使用包含空格的路径

          【讨论】:

            【解决方案11】:

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

            【讨论】:

              【解决方案12】:

              在 vm 参数上方添加 vm 的条目,否则它将不起作用..! 即`

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

              【讨论】:

              • 这行得通,args 的顺序很重要(即:如果将 -vm 添加到文件末尾)
              • 另外,确保路径在-vm的下一行,并且在--launcher.appendVmargs之上,否则它不会工作。 -vm 和路径空间分开,它会产生问题。
              【解决方案13】:

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

              【讨论】:

                【解决方案14】:

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

                【讨论】:

                • 请尝试提供一些解释以及答案以便更好地理解
                【解决方案15】:

                尝试用反斜杠转义空格..喜欢

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

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2016-04-01
                  • 2011-05-19
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-03-27
                  • 2012-04-02
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多