【问题标题】:How do I set Path Variables in Linux just like in windows?如何像在 Windows 中一样在 Linux 中设置路径变量?
【发布时间】:2018-09-26 04:13:30
【问题描述】:

我下载了 JDK 并且有很多使用需要它的软件。例如:对于 eclipse,我会将 jdk 复制到 eclipse 根目录的 java 文件夹中。结果,我的系统中有很多 JDK 副本。也不知道如何为 Sublime Text 配置它。是否可以像在 Windows 中一样安装 java。我的意思是我只是打开终端并输入 java 并执行它而不是每次都更改目录。

【问题讨论】:

标签: java linux terminal java-8


【解决方案1】:

你可以设置你的路径变量,但你真的不应该那样做。

由于您没有指定哪个版本的 Linux,我将针对 Ubuntu 和 Arch Linux 进行解释。

你应该像这样使用你的包管理器安装 openjdk 包:

Ubuntu:

sudo apt-get install openjdk-8-jdk

Arch linux:

sudo pacman -S jdk8-openjdk

然后您可以使用以下命令在这些版本之间进行更改:

Ubuntu

sudo update-alternatives --config java

Arch Linux

archlinux-java set java-8-openjdk

您甚至可以启动特定版本的特定应用程序,但目前无法涵盖这些内容。


设置路径变量不管

要更改您的 $PATH,您必须为每个用户编辑 ~/.profile(或 ~/.bash_profile)或在 /etc/profile 中编辑全局 $PATH 设置。

像这样简单地附加另一个路径:

/usr/local/bin:/usr/local/sbin:/custom/path

你也可以这样做:

PATH = $PATH:/custom/path

【讨论】:

  • 是OpenJDK和Oracle提供的一样,因为我知道OpenJDK但是觉得不一样。
  • 它们是不同的,但 99.99% 的开发人员不会注意到任何差异。不过,openjdk 在任何 linux 环境中都是非常标准的,因此针对它运行代码是一个好习惯:)
  • 如果您确实想使用 oracle,您只需按照我指定的方式更改路径即可:)
【解决方案2】:

多次安装绝不是一个好主意。你可以有像 setup 这样的窗口,但在 *nix OS 中你必须遵循不同的步骤。

JAVA_HOME 或 /etc/environment 的首选位置。所以在任何文本编辑器中打开/etc/environment 并添加以下行:

JAVA_HOME="/usr/lib/your jdk path"(使用您的 java 路径)

如果需要运行 else 跳到下一步source /etc/environment

看看做对了吗?

echo $JAVA_HOME

【讨论】:

  • 当我输入 echo $JAVA_HOME 时它会显示路径,但当我输入 java 时没有任何反应
【解决方案3】:

手动设置

是的,只需适当设置PATHJAVA_HOME。例如,请参阅this guide。这应该给出如下内容:

~/.bash_profile(或/etc/profile)

...
export JAVA_HOME=PATH_TO_JDK_ROOT/bin/java
export PATH=$PATH:PATH_TO_JDK_ROOT/bin

Linux 发行版设置

根据您的需要,您可以选择安装 linux 发行版 JDK(使用 apt-getyum、...),从而避免手动设置环境变量的步骤。

示例:Ubuntu 16.04

安装默认JDK:

sudo apt-get install default-jdk

安装 Oracle JDK:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

在安装了多个 Java 版本时选择活动的 Java 版本:

sudo update-alternatives --config java

【讨论】:

  • 指南很有帮助
  • 很高兴听到这个消息。对于未来的访问者,您是否觉得此答案中缺少某些内容?
【解决方案4】:

如果您希望附加值是脚本的本地值,请不要在导出之前添加。否则,请按照下面使用搜索功能的示例进行操作。我已附加到 PATH 语句并希望将其导出,以便 PATH 是全球已知的。如果我调用第二个终端,if 语句会阻止 PATH 环境变量被双重附加。

如果 [ ! "/home/mylogon/bin" == $PATH ]; 然后
导出 PATH=$PATH:/home/mylogon/bin:/home/mylogon/.local/bin" 菲

【讨论】:

    猜你喜欢
    • 2020-10-13
    • 2015-03-04
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    • 2021-12-07
    相关资源
    最近更新 更多