为什么sbt报告“没有检测到Java安装”并设置了$ JAVA_HOME?

时间:2014-12-26 13:10:08

标签: android macos scala sbt

我有2个sbt-android-scala项目。第一个是单一的:

$ ls -al
drwxr-xr-x  13 alex  staff   442 Dec 24 20:44 .
drwxr-xr-x   4 alex  staff   136 Dec 24 21:08 ..
drwxr-xr-x  12 alex  staff   408 Dec 24 20:38 .git
-rw-r--r--   1 alex  staff   141 Dec 24 20:38 .gitignore
-rw-r--r--   1 alex  staff   115 Dec 24 20:38 .travis.yml
-rw-r--r--   1 alex  staff   664 Dec 24 20:38 CHANGES
-rw-r--r--   1 alex  staff  1418 Dec 24 20:38 LICENSE
-rw-r--r--   1 alex  staff  2491 Dec 24 20:38 README.md
-rw-r--r--   1 alex  staff   874 Dec 24 20:38 build.sbt
drwxr-xr-x  10 alex  staff   340 Dec 24 20:38 notes
drwxr-xr-x   5 alex  staff   170 Dec 24 20:43 project
drwxr-xr-x   3 alex  staff   102 Dec 24 20:38 src
drwxr-xr-x   5 alex  staff   170 Dec 25 01:17 target

第二个有子项目:

    $ ls -al
drwxr-xr-x  23 alex  staff    782 Dec 24 21:57 .
drwxr-xr-x   4 alex  staff    136 Dec 24 21:08 ..
drwxr-xr-x  13 alex  staff    442 Dec 24 21:57 .git
-rw-r--r--   1 alex  staff     44 Dec 24 21:57 .gitignore
-rw-r--r--   1 alex  staff    203 Dec 24 21:57 .gitmodules
-rw-r--r--   1 alex  staff     46 Dec 24 21:57 .sbtopts
-rw-r--r--   1 alex  staff     55 Dec 24 21:57 .sbtrc
-rw-r--r--   1 alex  staff  35119 Dec 24 21:57 LICENSE.md
-rw-r--r--   1 alex  staff   6964 Dec 24 21:57 README.md
-rw-r--r--   1 alex  staff  30626 Dec 24 21:57 RELEASE-NOTES.md
drwxr-xr-x  18 alex  staff    612 Dec 24 21:57 my_prj1
-rw-r--r--   1 alex  staff    892 Dec 24 21:57 build.sbt
drwxr-xr-x  11 alex  staff    374 Dec 24 21:57 common
drwxr-xr-x  11 alex  staff    374 Dec 24 21:57 my_prj2
drwxr-xr-x   3 alex  staff    102 Dec 24 21:57 my_prj3
drwxr-xr-x   7 alex  staff    238 Dec 24 22:01 project

当我在第一个项目中运行sbt时,它编译得很好,与第二个项目不同:

$ sbt

No java installations was detected.
Please go to http://www.java.com/getjava/ and download

但是

$ echo $JAVA_HOME
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

6 个答案:

答案 0 :(得分:7)

我因为完全不同的原因而失败了:我有GREP_OPTIONS="--color=always"所以sbt无法正确确定我的Java版本(它将grep输出sed输出到{ {1}}等等)。从我的环境中删除GREP_OPTIONS解决了这个问题。

答案 1 :(得分:1)

如果您的 ${JAVA_HOME} 根路径 中配置,我认为您应该获得root权限。例如 /根/ JAVA / JDK

答案 2 :(得分:0)

我刚才出现了同样的问题。当我执行java -version时,返回了以下错误:

Error occurred during initialization of VM
Could not reserve enough space for object heap

事实证明,Eclipse正在消耗所有可用内存,而我无法启动另一个JVM。因此,我退出了Eclipse,一切正常,很好。

答案 3 :(得分:0)

我刚刚在Ubuntu遇到了同样的问题。在我的情况下,它是由我的JAVA_TOOL_OPTIONS中的设置引起的:

JAVA_TOOL_OPTIONS = -Djavax.net.ssl.trustStore =

答案 4 :(得分:0)

我再次尝试安装java,apt告诉我做一个--fix-broken,解决了这个问题,不需要重新安装java: sudo apt --fix-broken 安装

答案 5 :(得分:-1)

您的.sbt文件中的任何一个文件配置错误都会导致错误。你可以尝试重命名它们,它可以解决你的问题。