특정 Java 바이너리를 사용하여 특정 프로세스를 호출할 수 있어야 합니다. 프로세스를 "foo"라고 부르세요. 그러나 foo는 Java를 통해 다른 여러 프로세스도 호출하지만 foo는 나에게 블랙박스입니다. foo가 이러한 프로세스를 호출하면 "java bar", "java bat" 등이 실행됩니다. foo와 foo가 호출하는 모든 프로세스에 /full/path/to/java만 사용하도록 어떻게 지시합니까? 기본적으로 단일 쉘 세션 및/또는 단일 프로세스 트리에 "update-alternatives"를 사용하고 싶습니다.
운영 체제는 Centos7이고 쉘은 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