【问题标题】:An easy question about java and environment variables in ubuntu关于ubuntu中java和环境变量的一个简单问题
【发布时间】:2011-06-24 18:09:13
【问题描述】:

我已经安装了 java 的 Ubuntu 10.10。我可以从任何文件夹执行 java 命令。我想这可能是因为我设置了 java Classpath。但是 JAVA_HOME 和 CLASSPATH 都没有设置。

如果我查看 /etc/environment 内容,我可以看到 PATH 设置为 /usr/bin/(以及其他)。由于'which java'返回/usr/bin/java,这就是我可以从任何地方执行java的原因吗?如果不是,为什么会这样?

【问题讨论】:

标签: java variables ubuntu environment


【解决方案1】:

你可以执行java,因为命令在你的路径上。

echo $PATH

将向您显示搜索了哪些目录,以查找特定程序的顺序。因为/usr/bin 在你的路径上,所以当你输入java 时,它最终会看到/usr/bin/java。请注意,在许多系统中这是一个符号链接(一个指向另一个文件的文件),所以/usr/bin/java 通常指向/etc/alternatives/java(这也是一个指向真正可执行文件的符号链接)。

环境变量JAVA_HOME 发挥作用的地方在于检查JAVA_HOME 并对其进行操作而不是依赖路径的工具和程序。在大多数现代 Linux 系统中,替代子系统所做的工作取代了早期的(更成问题的)JAVA_HOME 技术。也就是说,如果您遇到需要它的工具,您可能还是想设置JAVA_HOME

JAVA_HOME 不那么受欢迎的一个原因是,要访问 JAVA_HOME,您需要运行一个 shell,而不是每个人都希望将每个 Java 项都包装在一个 shell 命令中。

【讨论】:

  • @de3,是的,答案是肯定的。很抱歉忘记了解释中的明显答案。
【解决方案2】:

是的,如果 java 二进制文件(或指向它的链接)位于路径中列出的文件夹中,那么您可以在不指定路径的情况下执行 java(例如 /usr/local/java/latest/bin/java -jar x.jar) JAVA_HOME 和 CLASSPATH 与系统路径无关。 JAVA_HOME 允许其他软件(或脚本)知道在哪里寻找 java 安装。 CLASSPATH 告诉 java 在哪里寻找类(编译 .java 文件产生的 .class 文件)。

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多