如何使用某个 java 二进制文件调用进程以及该进程调用的所有进程?

如何使用某个 java 二进制文件调用进程以及该进程调用的所有进程?

我需要能够使用某个 java 二进制文件调用某个进程。将该进程称为“foo”。然而,foo还通过java调用其他几个进程,但foo对我来说是一个黑盒子。当 foo 调用这些进程时,它只运行“java bar”、“java bat”等。我如何告诉 foo 和 foo 调用的任何进程仅使用 /full/path/to/java ?本质上我想对单个 shell 会话和/或单个进程树使用“update-alternatives”。

操作系统是Centos7,shell是bash。

设置系统 java 是不可能的,因为系统上的其他进程需要不同的 java 二进制文件。

答案1

创建一个~/myjava仅包含符号链接的目录/full/path/to/bin/java

mkdir ~/myjava
ln -s /full/path/to/bin/java ~/myjava/java

使用命令搜索路径开头的此目录运行进程。此外,有些程序会查看环境变量JAVA_HOME。确保它是一致的。实际的可执行文件应该位于名为或 的java子目录中。bin$JAVA_HOME

PATH=~/myjava:$PATH JAVA_HOME=/full/path/to foo

相关内容