Windows JAVA HOME 问题

标签 windows variables environment java-home

我正在尝试在我的 Windows Vista 服务器上使用 OracleHelp for Java。我下载了 Oracle 帮助,我正在按照他们的安装说明进行操作,其中指出:

  • 将 OHJ 安装 .zip 文件解压缩到您选择的目录中
  • 确保将 JAVA_HOME 环境变量设置为兼容 Java SE 安装的位置
  • 在 OHJ 安装目录中,有一个包含 Windows .cmd 文件和 Unix/Linux shell 脚本的 bin 子目录。在 Windows 平台上,双击 .cmd 文件以启动它们(或在命令行中键入 .cmd 文件名)。在 Unix 平台上,键入“sh scriptName.sh”以执行 shell 脚本。

    • ohguide.cmd (ohguide.sh) - 启动 Oracle 帮助指南文档
    • choiceDemo.cmd (choiceDemo.sh) - 启动 Oracle 帮助功能的演示
    • cshDemo.cmd (cshDemo.sh) - 启动上下文相关帮助的演示
    • helpsetDemo.cmd (helpsetDemo.sh) - 启动帮助集预览器以测试您的帮助集
    • authoringWizard.cmd (authoringWizard.bat) - 启动帮助集创作向导

当我在 Windows 上设置 JAVA_HOME 时,我可以设置带引号或不带引号。无论哪种方式都失败了:

带引号:

C:\Users\Amir\Desktop\ohj-5_0_0_433\ohj-5_0_0_433\bin>set JAVA_HOME="C:\Program
Files (x86)\Java\jdk1.6.0_14"
C:\Users\Amir\Desktop\ohj-5_0_0_433\ohj-5_0_0_433\bin>ohguide.cmd
C:\Users\Amir\Desktop\ohj-5_0_0_433\ohj-5_0_0_433>""C:\Program Files (x86)\Java\
jdk1.6.0_14"\bin\java.exe" -classpath "ohj.jar;help-share.jar;oracle_ice.jar;jew
t.jar;share.jar;help-demo.jar" oracle.help.demo.ChoiceDemo "demodoc\ohguide\ohgu
ide.hs"
'""C:\Program' is not recognized as an internal or external command,
operable program or batch file.

不带引号:

C:\Users\Amir\Desktop\ohj-5_0_0_433\ohj-5_0_0_433\bin>设置 JAVA_HOME=C:\Prog 文件(x86)\Java\jdk1.6.0_14

C:\Users\Amir\Desktop\ohj-5_0_0_433\ohj-5_0_0_433\bin>ohguide.cmd "file"不被识别为内部或外部命令, 可运行的程序或批处理文件。 未找到 Java 虚拟机;请设置 JAVA_HOME 环境变量。

最佳答案

问题是由嵌入在您的 JAVA_HOME 中的空白引起的。当我在 Windows 上安装 JDK 时,我使用不包含任何空白的目录路径覆盖了安装位置。仍然有数量惊人的工具无法处理空格。

在您的特定情况下,问题是由 _init.cmd 和 ohguide.cmd 之间的不一致引起的。在一个地方,他们在使用 OHJ_JAVA_HOME 时用双引号引起来,而在另一种情况下,他们没有用双引号引起来。

但有一个解决方案 - 使用目录的缩写名称。您可以在 DOS 窗口中使用 DIR/X 命令查找名称。例如,在我的系统上“C:\Program Files”的简称为“C:\Proga~1”。您可以在设置 JAVA_HOME 时使用此值,不带任何引号。例如

set JAVA_HOME=c:\progra~1\java\jdk1.6.0_14

关于Windows JAVA HOME 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1229019/

相关文章:

windows - git stash 留下修改后的文件?

c - Windows 显示驱动程序 Hook ,64 位

c - 在 Windows 10 上构建此代码的正确方法是什么?

linux - mac osx 在 sd 卡上显示胖分区,而 windows 不-为什么?

php - 测试数字是奇数还是偶数

c - 如何将变量的值组合成 C 中的字符串

makefile - 为什么默认情况下环境变量不覆盖在makefile中设置的变量?

ruby-on-rails - Namecheap 服务器上的 Rails 问题

c# - 如何从不同的线程访问变量?

linux - 从涉及输入和输出文件的不同工作目录在 linux 中运行程序