Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IOException:无法运行程序";javac";什么时候;sudo./sbt/sbt compile“;火花?_Sbt_Apache Spark - Fatal编程技术网

IOException:无法运行程序";javac";什么时候;sudo./sbt/sbt compile“;火花?

IOException:无法运行程序";javac";什么时候;sudo./sbt/sbt compile“;火花?,sbt,apache-spark,Sbt,Apache Spark,我正在安装它,它使用自己的SBT副本来进行设置 我正在VirtualBox虚拟机中使用LinuxMint 下面是我在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

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

我正在VirtualBox虚拟机中使用LinuxMint

下面是我在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
gives
javac1.6.0\u31

正确的
jdk1.6.0_31/bin
在我的
路径中

我读到这个错误可能是由于我安装的64位JDK引起的,但是我在32位JDK上也遇到了同样的错误

我怎样才能解决这个问题


编辑:使用bashshell。

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

当您从命令行执行
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
并添加
路径
JAVA\u主页

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

sudo apt-get install openjdk-7-jdk

它还将其放置在您的
路径
变量中。

您是否设置了
JAVA\u HOME
?为当前用户设置了
JAVA\u HOME
的可能副本,但我不知道是否为root用户设置了它。关于如何查看
根用户的
路径
有何评论
sudo-echo$PATH
echo$PATH
相同。它使用变通方法
sudo-E su
进行编译,然后使用
/sbt/sbt compile
为用户设置
JAVA\u HOME
PATH
环境变量,例如
root
,您需要编辑用户的配置文件,说
.bashrc
或类似的东西,这取决于shell。如果没有它,您将与丢失的变量以及因此而面临的问题进行斗争。我编辑了答案,提供了一个变通方法(不过,这是一个变通方法)。