IOException:在 Spark 中“sudo ./sbt/sbt compile”时无法运行程序“javac”?

fog*_*orn 5 sbt apache-spark

我正在安装Apache Spark,它使用自己的 SBT 副本进行设置。

我在 VirtualBox VM 中使用 Linux Mint。

这是我sudo ./sbt/sbt compile从 Spark 目录运行时的错误片段spark-0.9.0-incubating

[error] (core/compile:compile) java.io.IOException: Cannot run program "javac": error=2, No such file or directory

[error] Total time: 181 s, completed Mar 9, 2014 12:48:03 PM
Run Code Online (Sandbox Code Playgroud)

我可以从命令行运行javajavac很好:例如javac -version给出javac 1.6.0_31

正确的jdk1.6.0_31/bin是在我的PATH.

我读到该错误可能是由于我安装了 64 位 JDK,但我在 32 位 JDK 上遇到了同样的错误。

我该如何解决问题?

编辑:使用 bash shell。

Jac*_*ski 3

免责声明我现在主要是猜测,但仍然不确定我是否应该在这里回复而不是添加评论。在明确之前,免责声明仍然有效。

当您从命令行执行时javajavac您当时是什么用户?我很确定您的问题会浮出水面,因为您操作的用户不同

请注意,您正在执行sudo ./sbt/sbt compileroot由于sudo工作方式),但您没有提及您用来执行javacjava命令的用户。

添加jdk1.6.0_31/binPATHforroot后就一切就绪(就 Java 的配置而言)。

我还建议设置JAVA_HOME为指向jdk1.6.0_31,因为它有时可能会有所帮助——许多应用程序都使用它作为查找 Java 位置的方式。

作为解决方法,您可以适当地进行编辑./sbt/sbtPATH添加JAVA_HOME