Cassandra에는 java7u25 이상이 필요하고 iReport에는 1.6이 필요하기 때문에 새 CentOS에 2개의 JAVA JRE를 설치했습니다.
이제 명령줄에서 각 프로그램을 시작하고 각 프로그램에 사용할 버전을 어떻게 알릴 수 있습니까?
파일을 변경해야 합니까 /etc/profile
? 그렇다면 어떨까요?
답변1
둘 다 데려가는 건 의미가 없어$PATH
하나만 사용하게 되기 때문입니다. 예를 들어, 심볼릭 링크를 다른 이름에 연결할 수 있습니다. java6
저는 Java로 시도해 본 적이 없으며 작동하는지 확실하지 않습니다.
이를 수행하는 가장 좋은 방법은 그 중 하나(아마도 1.6)를 비슷한 위치에 설치하고 /opt/java6
1.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가 필요할 수 있습니다.