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



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

我在VirtualBox虚拟机中使用Linux Mint。

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

[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

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

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

我读到这个错误可能是由于我安装的64位JDK造成的,但是我在32位JDK上得到了相同的错误。

我该如何解决这个问题?

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

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

请注意,您将sudo ./sbt/sbt compile作为root执行(由于sudo的工作方式),但您没有说明您一直使用哪些用户来执行javacjava命令。

root添加jdk1.6.0_31/binPATH,您将所有设置(就Java的配置而言)。

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

作为一种解决方法,您可以编辑./sbt/sbt并适当地添加PATHJAVA_HOME

您需要包含javac可执行文件。在Ubuntu中,请运行以下命令:

sudo apt-get install openjdk-7-jdk

它也把它放在你的path变量中

相关内容

  • 没有找到相关文章

最新更新