JAVA_HOME环境变量未设置Validator.nu HTML Parser

时间:2011-07-22 12:51:16

标签: java ubuntu validation

我正在尝试安装Validator.nu服务器的本地版本,并且在尝试构建HTML Parser时仍然失败。

它说它无法找到我在.bashrc文件中设置的JAVA_HOME变量,并且在我提示时输入“echo $ JAVA_HOME”时显示正确

感谢赞赏

错误输出

"hg" pull --update -R build https://bitbucket.org/validator/build/
Not trusting file build/.hg/hgrc from untrusted user dave, group dave
Not trusting file /home/dave/src/checker/build/.hg/hgrc from untrusted user dave, group dave
warning: bitbucket.org certificate with fingerprint 81:2b:08:90:dc:d3:71:ee:e0:7c:b4:75:ce:9b:6c:48:94:56:a1:fe not verified (check hostfingerprints or web.cacerts config setting)
pulling from https://bitbucket.org/validator/build/
warning: bitbucket.org certificate with fingerprint 81:2b:08:90:dc:d3:71:ee:e0:7c:b4:75:ce:9b:6c:48:94:56:a1:fe not verified (check hostfingerprints or web.cacerts config setting)
searching for changes
no changes found
Error: The JAVA_HOME environment variable is not set.
Set the JAVA_HOME environment variable to the pathname of the directory where your JDK is installed.

3 个答案:

答案 0 :(得分:3)

而不是:

$ sudo python build/build.py all

尝试:

$ sudo -E python build/build.py all

出于安全原因,sudo命令会重置环境(因此即使导出了python进程,JAVA_HOME也会被删除)。 “sudo -E”将保护环境。

答案 1 :(得分:2)

我假设(来自标签)你使用ubuntu。

列出系统中已安装的javas的版本:

dave@ubuntu:~$ update-java-alternatives --list
java-6-openjdk 1061 /usr/lib/jvm/java-6-openjdk

注意,如果在〜/ .bashrc中设置JAVA_HOME,它将仅在终端会话中设置。 除非您导出它,否则它将仅为您当前的shell进程设置(而不是像mercurial这样的子进程)。

在.bashrc中添加行:

export JAVA_HOME="/usr/lib/jvm/java-6-openjdk"

打开一个新终端并测试它:

$JAVA_HOME/bin/java -version && echo java seen by bash
bash -c '$JAVA_HOME/bin/java -version && echo java seen by bash subprocesses'

如果要为所有进程设置环境(不仅仅是从终端手动启动),您可以:

dave@ubuntu:~$ sudo $EDITOR /etc/environment

答案 2 :(得分:2)

在过去4天解决了这个问题后,我设法让我的本地Ubuntu VM上运行了validator.nu服务器,所以我想我会更新这个帖子以防其他人遇到同样的问题。

我仍然不能100%确定JAVA_HOME变量的原始问题来自哪里,但我怀疑(虽然我不是这方面的专家),这与我使用sudo运行的方式有关python build。

我最初是按照http://about.validator.nu/#src上的说明操作,但是使用

$ sudo python build/build.py all

这是因为部分构建需要正确的权限才能工作。

这是我从Ubuntu 11的全新安装开始的逐步过程。

  • 已安装ubuntu 11
  • 打开了终端
  • sudo / bin / bash< ----------- 我认为这是一条重要的路线
  • apt-get install mercurial
  • apt-get install subversion
  • apt-get install openjdk-6-jre
  • apt-get install openjdk-6-jdk
  • export JAVA_HOME = / usr / lib / jvm / java-6-openjdk
  • 按照其他http://about.validator.nu/#src说明进行操作

当我为构建脚本设置内部网络时,我将需要再次执行此操作,因此如果我错过了任何内容,我将编辑此内容。

希望这可以挽救另一个人的头痛和失去的日子!