Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.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
在Ubuntu中设置JAVA_HOME环境变量_Java_Ubuntu_Java Home - Fatal编程技术网

在Ubuntu中设置JAVA_HOME环境变量

在Ubuntu中设置JAVA_HOME环境变量,java,ubuntu,java-home,Java,Ubuntu,Java Home,我是ubuntu的新手,在我运行的终端的某个点上: mortar local:illustrate pigscripts/retail-recsys.pig purchase_input -f params/retail.params 但我有以下错误: 找不到合适的java安装。如果您已经安装了java 继续之前,请设置JAVA_HOME环境变量。否则,一个 需要将合适的java安装添加到本地系统中 安装Java 在OSX上,从命令行运行javac。这将初始化安装。对于 Linux系统请查阅相

我是ubuntu的新手,在我运行的终端的某个点上:

mortar local:illustrate pigscripts/retail-recsys.pig purchase_input -f params/retail.params
但我有以下错误:

找不到合适的java安装。如果您已经安装了java
继续之前,请设置JAVA_HOME环境变量。否则,一个 需要将合适的java安装添加到本地系统中

安装Java

在OSX上,从命令行运行
javac
。这将初始化安装。对于 Linux系统请查阅相关软件包管理器的文档


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

将行
导出Java_HOME=/usr/lib/jvm/Java xxx oracle
放在主目录的.profile文件中。请注意,您必须替换xxx。您可能需要注销并再次登录

通常您可以在中设置路径

~/.bashrc

使用export JAVA_HOME=/usr/lib/jvm/JAVA version

但是,您可以按照的说明进行综合说明

export JAVA_HOME=/usr/lib/jvm/java-7-oracle
~/.bashrc
文件中

如果希望此环境变量可供所有用户使用,并且在系统启动时可用,则可以将以下内容添加到/etc/profile.d/java.sh(必要时创建):

然后在终端运行中:

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

到目前为止。您不需要设置路径,只需要调整默认的“java alternative”位置。

您可以在terminal中键入java,如果它不工作,则表示您没有安装java。如果它工作,则在terminal中键入javac。如果javac不工作,则应设置java环境变量,如果它工作,您的程序可能有问题。

首先,您需要决定使用哪个已安装的Java版本?不用担心,你可以随便挑-

update-java-alternatives -l
一个“简单”的解决方案是将其添加到“$HOME/.bashrc”

这将选择第一个安装的JDK,并将其作为JAVA_主页(第三个字段)——在我的系统上,这是

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

设置环境变量的最简单方法是导出:

    $ export JAVA_HOME="/usr/bin"
这将临时设置所需的变量。您可以检查它是否设置为:

    $ echo $JAVA_HOME

如果您想要更持久的解决方案,请将“export JAVA_HOME=“/usr/bin””附加到.bashrc或.bash_配置文件中

要检查java是否正确安装,请执行以下操作:

    $ which java
    $ which javac
您应该得到类似的输出:

    /usr/bin/java

对于指向活动jdk的
JAVA\u HOME
,请添加到
~/.bashrc

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

它将动态地将
$JAVA_HOME
设置为
更新备选方案所选的JDK

在Debian/Ubuntu/LinuxMint中,我们可以添加到.bashrc
export JAVA|u HOME=$(更新JAVA alternations-l | head-n1 | sed's/\s//g')

。我敢打赌,当您运行/安装JAVA_时,您希望使用它导出JAVA_主页。这只是一个临时解决方案,在重新启动时会被清除。@IgorGanapolsky否,如果您将其添加到“.bashrc”中,则不会。在Ubuntu 14.04上,当我通过apt安装jdk时,创建了一个symlink/usr/lib/jvm/default java。我将其用于java_HOME环境变量。我需要更新Ubuntu 16.4的此解决方案,以消除这三个部分之间的多个空格。所以我使用
export JAVA|u HOME=$(更新JAVA alternations-l | head-n1 | sed's/*//g'| cut-f3-d')
我在.bashrc中设置了它,但我必须重新启动吗??它没有生效。为什么是/usr/bin/java?如果我将jdk从Oracle下载到另一个目录会怎么样?好吧,这只是一个具体的例子:)如果您计划使用多个版本的java,这是最好的答案。这允许您使用更新替代项来设置java版本,它将始终有效。它应该是
导出java\u HOME=/usr
,否则系统将在
/usr/bin/bin
中查找java可执行文件。非常感谢这是最好的答案:)为了获得当前配置的替代项,我认为应该是:
updatealternations--queryjavac | sed-n-e的/Value:\(.*)\/bin\/javac/\1/p'
    $ which java
    $ which javac
    /usr/bin/java
export JAVA_HOME=$(update-alternatives --query javac | sed -n -e 's/Best: *\(.*\)\/bin\/javac/\1/p')