我正在安装Apache Spark,它使用自己的SBT副本进行设置。
我在VirtualBox VM中使用Linux Mint。
当我从Spark目录sudo ./sbt/sbt compile
运行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
我可以从命令行运行java
和javac
就好了:例如javac -version
提供javac 1.6.0_31
jdk1.6.0_31/bin
中有正确的PATH
。
我读到错误可能是由于我安装的64位JDK,但是我得到了与32位JDK相同的错误。
如何解决问题?
编辑:使用bash shell。
答案 0 :(得分:3)
免责声明我现在大部分都在猜测,但仍然不确定我应该在这里做出回应而不是添加评论。在明确之前,免责声明仍然存在。
当您从命令行执行java
和javac
时,您当时的用户是什么?我很确定您的问题浮出水面,因为您运营的用户 不同。
请注意,您正在sudo ./sbt/sbt compile
执行root
(由于sudo
的工作方式),但您没有说明您曾经使用过哪些用户执行javac
和java
命令。
为jdk1.6.0_31/bin
添加PATH
到root
,您将全部设置(就Java相关配置而言)。
我还建议将JAVA_HOME
设置为指向jdk1.6.0_31
,因为它可能会有所帮助 - 许多应用程序正在使用它作为查找Java位置的方法。
作为一种变通方法,您可以修改./sbt/sbt
并相应地添加PATH
和JAVA_HOME
。
答案 1 :(得分:2)
您需要包含javac
可执行文件。要在Ubuntu中执行此操作,请运行以下命令:
sudo apt-get install openjdk-7-jdk
它也会将其放在您的path
变量中。