IOException:无法运行程序";javac";什么时候;sudo./sbt/sbt compile“;火花?
我正在安装它,它使用自己的SBT副本来进行设置 我正在VirtualBox虚拟机中使用LinuxMint 下面是我在Spark目录下运行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
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
givesjavac1.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。如果没有它,您将与丢失的变量以及因此而面临的问题进行斗争。我编辑了答案,提供了一个变通方法(不过,这是一个变通方法)。