【问题标题】:How to install java on Suse?如何在 Suse 上安装 java?
【发布时间】:2016-09-03 02:40:30
【问题描述】:

我正在尝试在 Linux Suse 上安装 java (jre 1.8),

我从 oracle 网站下载了 tar.gz 文件并解压。

现在我的机器上有 java 但我只能这样运行它:

./java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

单独运行命令不起作用:

/usr/java/jdk1.8.0_91/bin # java -version
If 'java' is not a typo you can run the following command to lookup the package that contains the binary:
    command-not-found java
-bash: java: command not found

所以显然我不能添加到 PATH 因为它不会被识别。

有人知道我错过了什么吗?

【问题讨论】:

  • 您需要将目录/usr/java/jdk1.8.0_91/bin 添加到您的可执行搜索路径中。 export PATH=/usr/java/jdk1.8.0_91/bin:${PATH}。我不熟悉 Suse,但在您的用户主页中应该有一些 .profile 文件,您可以在其中添加此设置。如果您想为所有用户更改它,请查找文件/etc/profile
  • 但是如果它没有从“bin”目录本身运行,那么将它添加到 PATH 有什么意义呢?

标签: java linux suse


【解决方案1】:

Linux 不是 Windows。如果您启动一个没有路径的可执行文件,系统只会在它位于PATH 中指定的目录之一时启动它。

这意味着即使您要运行的可执行文件在您的当前目录中,如果该目录不在PATH 中,它也不会被执行。如果你显式指定了可执行文件的目录,即使它不在PATH中的目录也会被执行。

看一些小例子。

以下假设:/usr/java/jdk1.8.0_91/bin 未在 PATH 中指定。

cd /tmp
java 

将失败,因为/tmp 不在PATH 中。

cd /tmp
./java

会失败,因为在/tmp 目录中(通常)没有java 可执行文件。

cd /usr/java/jdk1.8.0_91/bin
java

将失败,因为/usr/java/jdk1.8.0_91/bin 不在PATH 中。

cd /usr/java/jdk1.8.0_91/bin
./java

将在您明确指定运行在当前目录./ 中找到的java 时执行。

【讨论】:

  • 在 Suse 中,您需要添加 /etc/profile.local 并且 PATH 添加将在普通用户升级后继续存在。对于 root 检查位于 /etc 中的 .profile
  • @ShacharHamuzimRajuan 感谢您添加与 Suse 相关的此信息。因为位置和文件名可能因使用的 Linux 发行版而异。
猜你喜欢
  • 1970-01-01
  • 2011-07-25
  • 1970-01-01
  • 2012-01-16
  • 2013-06-10
  • 2011-02-07
  • 2015-07-02
  • 2015-06-10
  • 2017-02-05
相关资源
最近更新 更多