GGTS选择不正确的java路径

时间:2014-04-27 11:56:45

标签: java spring-tool-suite

GGTS(Groovy Grails工具套件)正在挑选JAVA_HOME的错误值。当我检查终端中的值时它显示java-6,但是GGTS正在选择java-7。

sashwat@sashwat-desktop:~$ echo ${JAVA_HOME}
/usr/lib/jvm/java-6-openjdk-amd64

我在GGTS中收到以下错误

Error executing script TestApp: java.io.IOException: 
Cannot run program "/usr/lib/jvm/java-7-openjdk-amd64/bin/java" (in directory "/home/sashwat/grails/gTunes"): 
java.io.IOException: error=2, No such file or directory (Use --stacktrace to see the full trace)

我可以从命令行运行应用程序,当我尝试从GGTS运行它时,它只会出错。有人可以在这方面帮助我吗?

有一种奇怪的行为。如果我重新安装GGTS,一切都会正常工作但重启后会开始显示上述错误。

4 个答案:

答案 0 :(得分:2)

STS没有使用' JAVA_HOME'确定执行Grails命令的JVM。与大多数基于Eclipse的工具一样,它通过工作区设置进行配置。要更改用于执行grails命令的JVM,请使用菜单:

窗口>>偏好。

转到

Java>>已安装的JRE

然后确保添加要使用的JVM(如果尚未添加)并确保将其作为默认选项进行检查。

答案 1 :(得分:0)

当你启动eclipse时,默认使用系统定义的JRE。日食JAVA_HOME被忽略了。

你可以在这里看到哪个JRE / JDK eclipse正在使用。 帮助 - >关于Eclipse - >安装细节 - >配置

如果您想使用特殊的JRE / JDK(如JAVA_HOME中的那个)启动eclipse,则必须修改eclipse.ini或sts.ini文件(通常它位于eclipse可执行文件旁边)。

在你的ini文件中的-jvmargs之前添加javaw的路径。

-vm
"C:\Program Files\Java\jdk1.6.0_16\bin\javaw.exe" 
-jvmargs
...

重启eclipse并验证java版本。

答案 2 :(得分:0)

对于每个项目,您可以选择JRE / JDK eclipse用于编译和执行的内容。

  1. 您需要告诉eclipse在哪里可以找到您系统上的所有JRE和JDK。
    • 转到偏好设置> Java->已安装的JRE
    • 添加或搜索所有JRE / JDK,使其显示在列表中
  2. (可选但建议)为每个执行环境 1.6,1.7,1.8选择之前搜索过的匹配JDK / JRE。
  3. 现在您可以定义您的Project应该使用哪个JRE / JDK Eclipse。在Packe Explorer中右键单击Project并选择属性。下一个
    • 转到 Java构建路径并编辑库下的当前JRE
    • (取决于第2步)您现在可以选择执行环境 1.6,1.7,1.8或
    • 备用JRE 列表中选择您最喜欢的JRE / JDK
  4. 多数民众赞成应该这样做。不,你应该在包浏览器中看到jre改变了。如果您现在执行代码,则使用提供的jre。

答案 3 :(得分:0)

如果您的开发计算机上安装了多个Java版本,并且如果您已经用尽所有可能的配置方法在GGTS中使用正确的Java版本但无济于事,那么您将非常沮丧。

不幸的是,在极少数情况下,GGTS中的Grails仍然会选择错误的旧版本(例如1.6),当它应该拿起较新版本(1.7)时,GGTS中的所有指标都表示为项目配置了GGTS使用较新的Java版本,但它实际上并没有反映您的设置。

你怎么知道不是?因为当我从GGTS中运行Grails命令(例如grails编译)时,我得到了:

Unable to load extension class [org.codehaus.groovy.runtime.NioGroovyMethods]
让我相信Java旧版本(1.6)由于某种原因仍然错误地被GGTS使用。当我从GGTS的命令行外面运行以下命令时:

cd <project directory>
grails compile

我成功编译项目没有问题。发生了什么事?

在我的情况下,我怀疑我的旧GGTS版本已经就地升级到最新版本,但不知何故GGTS并不像重新安装一样干净。因此,我的解决方案是重新安装最新的GGTS,然后问题就消失了!