2014-04-17 157 views
7

我在Ubuntu上很新,在终端某一时刻我运行:设置JAVA_HOME环境变量在Ubuntu

mortar local:illustrate pigscripts/retail-recsys.pig purchase_input -f params/retail.params 

,但我有这个以下错误:

A suitable java installation could not be found. If you already have java installed
please set your JAVA_HOME environment variable before continuing. Otherwise, a suitable java installation will need to be added to your local system.

Installing Java

On OSX run javac from the command line. This will intiate the installation. For Linux systems please consult the documentation on your relevant package manager.

但我很确定我有Java,所以请如何设置我的JAVA_HOME环境变量?

+1

我做了一些关于Mortar的移植和[我发现这个文档页面](http://help.mortardata.com/data_apps/recommendation_engine/install_mortar)。我敢打赌,这就是您在运行/安装时想用来导出JAVA_HOME的内容。 – Makoto

回答

0

将行​​放置在家庭目录的.profile文件中。请注意,您必须替换xxx。您可能需要注销并再次正常登录

0

您可以在

的〜/ .bashrc

与出口设置JAVA_HOME =路径/ usr/lib目录/ JVM/Java的版本

但是你可按照来自here的指示进行全面指导。

+0

我将它设置在.bashrc中,但是我必须重新启动吗?它不会生效。 –

2
export JAVA_HOME=/usr/lib/jvm/java-7-oracle 

在您的~/.bashrc文件中。

如果你想提供给所有用户,并在系统启动这个环境变量,那么你可以添加以下/etc/profile.d/java.sh(如果需要创建它):

export JDK_HOME=/usr/lib/jvm/java-7-oracle 
export JAVA_HOME=/usr/lib/jvm/java-7-oracle 

然后在终端运行:

sudo chmod +x /etc/profile.d/java.sh 
source /etc/profile.d/java.sh 
+0

JDK_HOME –

0

你可以在终端中键入java,如果它不工作意味着你没有安装java.if它的工作原理,在terminal.if类型中的javac剂量不工作,你应该设置Java环境变量,如果它工作,你的程序可能有问题。

15

首先,您需要决定使用哪个Java版本?不用担心,你可以选择任何你有 -

update-java-alternatives -l 

一个“易”解决方案是增加这“$ HOME/.bashrc中”,

export JAVA_HOME=$(update-java-alternatives -l | head -n 1 | cut -f3 -d' ') 

这采先安装JDK,并采取这是JAVA_HOME(第三场) - 我的系统这是

/usr/lib/jvm/java-1.7.0-openjdk-amd64 
+0

有什么意义?这只是一个临时解决方案,并且在重新引导后会被清除。 –

+1

@IgorGanapolsky不,如果你将它添加到“.bashrc”,它不会。 –

+0

在Ubuntu 14.04上,当我通过apt安装jdk时,创建了符号链接/ usr/lib/jvm/default-java。我用这个用于JAVA_HOME环境变量。 – RobotNerd

4

最简单的方法来设置环境变量上与出口:

$ export JAVA_HOME="/usr/bin" 

这将暂时设置所需的变量。昱欧可以检查它是否与设置:

$ echo $JAVA_HOME 

$ printenv 

如果蚂蚁更持久的解决方案,追加 '出口JAVA_HOME = “/ USR/BIN”' 到.bashrc或者.bash_profile文件文件。

要检查是否正确安装的Java:

$ which java 
    $ which javac 

你应该得到类似的输出:

/usr/bin/java 
+1

为什么/ usr/bin/java?如果我从Oracle下载jdk到另一个目录会怎么样? –

+0

那么,这只是一个具体的例子:) – PovilasB

+0

这是最好的答案,如果你打算使用多个版本的Java。这允许你使用update-alternatives来设置你的java版本,并且它会一直工作。 – loctrice

0

对于JAVA_HOME指向积极的JDK,添加到您的~/.bashrc

export JAVA_HOME=$(update-alternatives --query javac | sed -n -e 's/Best: *\(.*\)\/bin\/javac/\1/p') 

它将动态设置$JAVA_HOME转换为由update-alternatives所选的JDK。