为什么sbt构建失败" java.io.IOException:无法运行程序" / usr / bin / java / bin / javac":error = 20,不是目录"?

时间:2015-09-11 04:09:59

标签: apache-spark

我从Spark网站下载了Spark的最新版本。我使用sbt/sbt assembly构建并面临错误:

at java.lang.Thread.run(Thread.java:745)
[error] (streaming-flume-sink/compile:compile) java.io.IOException: Cannot run program "/usr/bin/java/bin/javac": error=20, Not a directory
[error] (unsafe/compile:compile) java.io.IOException: Cannot run program "/usr/bin/java/bin/javac": error=20, Not a directory
[error] (network-common/compile:compile) java.io.IOException: Cannot run program "/usr/bin/java/bin/javac": error=20, Not a directory
[error] (launcher/compile:compile) java.io.IOException: Cannot run program "/usr/bin/java/bin/javac": error=20, Not a directory
[error] Total time: 3438 s, completed Sep 11, 2015 1:38:03 AM

可能是什么问题以及如何解决它?

1 个答案:

答案 0 :(得分:0)

tl; dr 取消设置JAVA_HOME并重新开始。

问题是JAVA_HOME指向java可执行文件,但应该是Java运行时的安装目录。

使用JAVA_HOME并解析Java工具的jar和二进制文件(如编译器,JVM等),JAVA_HOME作为路径的前缀,这是一个常见的规则。这就是为什么自Cannot run program "/usr/bin/java/bin/javac": error=20, Not a directory解析为JAVA_HOME后您看到/usr/bin/java的原因。