当我在Ubuntu上构建Jikes RVM时,我遇到了这个错误。有什么想法吗?
bin/buildit localhost production
---> Config: production
/bin/bash --login -c '/bin/bash --login -c " cd /home/jack/Programs/jikesrvm-3.1.2 && export JAVA_HOME=/opt/jdk1.6.0 && ant very-clean -Dhost.name=ia32-linux && ant check-components-properties -Dhost.name=ia32-linux -Dtarget.name=ia32-linux -Dcomponents.cache.dir=/home/jack/.buildit_components_cache && ant -Dtarget.name=ia32-linux -Dconfig.name=production -Dhg.revision= -Dhost.name=ia32-linux -Dcomponents.cache.dir=/home/jack/.buildit_components_cache "'
Error: JAVA_HOME is not defined correctly.
We cannot execute /opt/jdk1.6.0/bin/java
Wed Jun 13 12:23:37 EDT 2012
===================== Summary =====================
Local : /home/jack/Programs/jikesrvm-3.1.2
Build : ubuntu:/home/jack/Programs/jikesrvm-3.1.2
Target : ubuntu:/home/jack/Programs/jikesrvm-3.1.2
Start : Wed Jun 13 12:23:37 EDT 2012
Config : production [FAILED Wed Jun 13 12:23:37 EDT 2012]
===================================================
OS:
Linux ubuntu 2.6.32-24-generic #39-Ubuntu SMP Wed Jul 28 06:07:29 UTC 2010 i686 GNU/Linux
环境变量: PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-6-sun-1.6.0.22/bin<
JAVA_HOME
/usr/lib/jvm/java-6-sun-1.6.0.22
我检查了java
目录中的JAVA_HOME/bin
,它有效。
无论我如何改变环境变量,错误一直在抱怨
“我们无法执行/opt/jdk1.6.0/bin/java”。
似乎我没有修改正确的“位置”。
答案 0 :(得分:7)
运行此命令:
find . -exec grep "jdk1.6.0" {} \;
找出将JAVA_HOME设置为该路径的文件。
答案 1 :(得分:3)
在构建jikes时,您可以使用ant或使用您正在使用的命令构建它。 如果JAVA_HOME问题导致问题,请使用
bin/buildit localhost production -j"path to your jvm directory"
- 这出现在“/usr/bin/jvm
”中。
另一种方法:有bin / buildit.base_config,其中特别提到了JAVA_HOME的路径。因此,在“# Default JAVA_HOME values
”下,您可以修改相应的位置,例如
global.javahome.ppc32-linux=/usr/lib/jvm/java-6-sun-1.6.0.26
global.javahome.ppc64-linux=/usr/lib/jvm/java-6-sun-1.6.0.26
global.javahome.ia32-linux=/usr/lib/jvm/java-6-sun-1.6.0.26
global.javahome.x86_64-linux=/usr/lib/jvm/java-6-sun-1.6.0.26
您可以选择要使用的内容。如果不熟悉您的体系结构,请修改所有内容,现在您可以构建,而无需担心显式提及您的Java路径。 有关更多详细信息,请查看 this blog
我还写了一篇关于如何start to fiddle with Jikes
的小文章答案 2 :(得分:0)
这是JRE但不是JDK。安装JDK并使JAVA_HOME指向它。
答案 3 :(得分:-1)
由于几个原因,您可能会收到此错误。要快速解决此问题,请按照以下步骤进行操作
首先找到java的位置。要获取已安装的Java平台的列表,请从终端运行以下命令:
$ sudo update-alternatives --config java
现在设置JAVA_HOME和PATH,
$ export JAVA_HOME=<java_home>
$ export PATH=$JAVA_HOME/jre/bin:$PATH
创建符号链接
$ sudo ln -s <java_home>/jre <java_symlink_path>
当我们以您的案例为例时:
$ sudo ln -s /usr/lib/jvm/java-6-sun-1.6.0.22/jre /opt/jdk1.6.0
上面的命令将创建系统在您的问题中尝试查找的符号链接位置。
最后试试你的应用。