서로 다른 Java 버전을 사용하여 두 프로그램 실행

서로 다른 Java 버전을 사용하여 두 프로그램 실행

Cassandra에는 java7u25 이상이 필요하고 iReport에는 1.6이 필요하기 때문에 새 CentOS에 2개의 JAVA JRE를 설치했습니다.

이제 명령줄에서 각 프로그램을 시작하고 각 프로그램에 사용할 버전을 어떻게 알릴 수 있습니까?

파일을 변경해야 합니까 /etc/profile? 그렇다면 어떨까요?

답변1

둘 다 데려가는 건 의미가 없어$PATH하나만 사용하게 되기 때문입니다. 예를 들어, 심볼릭 링크를 다른 이름에 연결할 수 있습니다. java6저는 Java로 시도해 본 적이 없으며 작동하는지 확실하지 않습니다.

이를 수행하는 가장 좋은 방법은 그 중 하나(아마도 1.6)를 비슷한 위치에 설치하고 /opt/java61.7을 기본값으로 두는 것입니다. 그런 다음 6을 사용하려는 경우:

export PATH=/opt/java6/bin:$PATH

명령줄에서 시작하세요. 이 모든 것을 하나의 스크립트에 넣을 수도 있습니다. Cassandra를 제거하지 않는 한 나중에 동일한 셸에서 Cassandra를 실행하려고 시도하지 마세요 $PATH(확인하는 쉬운 방법은 입니다 echo $PATH).

특정 애플리케이션에 대해 이를 자동화하려면 다음을 수행하십시오.

#!/bin/sh

export PATH=/opt/java6/bin:$PATH
exec /path/to/application

$PATH그런 다음 일반 파일 (예: ) 의 어딘가에 배치하고 /usr/local/bin실행 가능한지 확인한 다음( chmod 755 whatever.sh) 그런 방식으로 애플리케이션을 시작할 수 있습니다. 이렇게 하면 $PATH시작 프로세스를 방해하지 않습니다 .

답변2

내 프로그램은 기본 openJRE-11을 사용하여 실행할 수 없기 때문에 이는 터미널 에뮬레이터에서 시작할 때와 데스크탑 아이콘 실행 프로그램에서 시작할 때 모두 작동합니다. XFCE와 함께 Debian-10 차단기 사용하기

/bin/sh -c 'JAVA_HOME=/usr/lib/jvm/java-8-oracle/ PATH=$JAVA_HOME/bin/:$PATH /home/username/myapplication' 또한 시도해 보십시오: JAVA_HOME=/usr/lib/jvm/java-8-oracle/ PATH=$JAVA_HOME/bin/:$PATH /home/username/myapplication

각 Java 버전에 대한 별칭을 만들 수도 있으므로 j8o =와 같은 짧은 명령 /bin/sh -c 'JAVA_HOME=/usr/lib/jvm/java-8-oracle/ PATH=$JAVA_HOME/bin/:$PATH과 결국 일일 명령은j8o ./myapplication

기본 java 를 변경하려면 update-alternatives --config java프롬프트를 따르십시오. 필요한 경우 javac(바이트코드 컴파일러)에 대한 기본값을 설정하는 데에도 동일한 방법을 사용할 수 있습니다. 기본값을 변경하려면 sudo가 필요할 수 있습니다.

관련 정보