如何切换特定进程的java环境?

如何切换特定进程的java环境?

我在工作中使用openjdk,但有时我需要oracle的jre甚至特定版本的oracle的jre。据我所知,我应该更新JAVA_HOME值和/usr/bin/java/或/etc/alternatives/java链接目的地。是否有一种智能/安全/简单的方法可以使这些更改针对特定流程临时进行?谢谢你! (我正在使用 debian linux 不稳定的仓库)

答案1

是否有一种智能/安全/简单的方法可以使这些更改针对特定流程临时进行?

诸如此类的环境变量$JAVA_HOME是继承的,而不是系统全局的。因此,如果您设置一种特定的方式,它仅适用于该进程,并且如果导出,则适用于它生成的任何进程。

这里的进程将是一个 shell 实例;您可以在命令行上执行此操作或创建如下内容:

#!/bin/sh

PATH=/opt/oracle/java/bin:$PATH
export $PATH
exec whatever.jar

如果您不熟悉如何$PATH工作,则会按顺序检查目录,因此在这种情况下,/opt/oracle/java/bin将在其他任何内容之前进行搜索,并且当java需要时,将使用那里的目录。

您可以在调用它时详细说明它以使用参数来指定要执行的文件.jar.class文件,以及要使用的 java 安装的一些速记参数,例如if [[ $1 == 2 ]]; then PATH=/opt/oracle2/java/bin...

$PATH(并且$JAVA_HOME,如果您也这样做)将仅适用于脚本及其启动的任何内容。

如果您正在处理某件事,您可以export在一个终端中使用变量,并且它将继续应用于该终端并且仅应用于该终端。如果安装了 JDK,同一bin目录中包含javac等。

相关内容