Java 5에서 실행되는 몇 개의 응용 프로그램이 있으며 이제 Java 6 기반 응용 프로그램을 가져 오려고합니다. Windows에서 두 Java 버전을 함께 사용할 수 있습니까?
다른 응용 프로그램에 적합한 Java 버전을 설정하는 제어판이 있습니까? 또는 다른 설정 방법이 있습니까? 특정 응용 프로그램을 실행하는 데 사용할 Java 버전은 무엇입니까?
답변:
물론 Windows에서 여러 버전의 Java를 사용할 수 있습니다. 그리고 다른 응용 프로그램은 다른 Java 버전을 사용할 수 있습니다. 신청서는 어떻게 시작됩니까? 일반적으로 다음과 같은 배치 파일이 있습니다.
java ...
PATH 변수를 사용하여 Java 실행 파일을 검색합니다. 따라서 Java 5가 PATH에서 첫 번째 인 경우 Java 6 응용 프로그램을 실행하는 데 문제가 있습니다. 그런 다음 특정 Java 버전을 사용하도록 배치 파일을 수정해야합니다 (예 : JAVA6HOME값 으로 환경 변수 를 정의 C:\java\java6(이 디렉토리에 Java 6이 설치된 경우)). 배치 파일 호출을 변경해야합니다.
%JAVA6HOME%\bin\java ...
jdk-...exe STATIC=1. 나는 이것을 시도했고 효과가 있었다.
STATIC인수로 사용되지만 JDK도 마찬가지입니까?
여러 JRE / JDK 버전을 나란히 설치할 수 있습니다. 더욱이 Sun은 프로그램 파일 아래에 각각 다른 폴더를 생성하기 때문에 특별한 일을 할 필요가 없습니다.
각 애플리케이션에 대해 작동하는 JRE를 확인하는 제어판이 없습니다. 기본적으로 작동하는 JRE는 PATH 환경 변수에서 첫 번째가됩니다. 이를 변경하거나 JAVA_HOME 변수를 변경하거나 특정 cmd / bat 파일을 만들어 각각 경로에 다른 JRE가있는 원하는 응용 프로그램을 시작할 수 있습니다.
Java 파일을 추적하기 위해 Windows에서 CLASSPATH, JAVA_HOME 및 PATH 아이디어가 서투른 것에 놀랐습니다. 여러 JRE와 이에 만족하는 방법 때문에 여기에 왔습니다. 정보를 역설하지 않고, 나보다 훨씬 더 영리한 사람으로부터 나는이 문제에 대한 그의 기사를 지적하고 싶습니다. 그것은 나를 위해 완벽하게 해결합니다.
기사 작성자 : Ted Neward : 여러 Java 홈 : Java 애플리케이션에 자체 JRE 제공
서버 측 개발 언어로서의 Java가 기하 급수적으로 성장함에 따라 Java 개발 도구, 환경, 프레임 워크 및 확장에서 동등하게 기하 급수적으로 성장했습니다. 안타깝게도 이러한 모든 도구가 동일한 Java VM 설치에서 잘 작동하는 것은 아닙니다. 일부는 Servlet 2.1 호환 환경이 필요하고 일부는 2.2가 필요합니다. 일부는 JDK 1.2 이상에서만 실행되고 일부는 JDK 1.1 (및 그 이상)에서 실행되지 않습니다. 일부는 스윙 1.0 일 이전의 "com.sun.swing"패키지를 필요로하고 다른 일부는 "javax.swing"패키지 이름을 필요로합니다.
더 나쁜 것은, 단 6 개월 전에 Java를 사용하여 개발 된 시스템이 새로운 (아무래도 관련이없는) 애플리케이션 릴리스에 필요한 일부 Java Extension 설치로 인해 갑자기 "작동하지 않을"수 있으므로 기업 내에서도이 문제를 발견 할 수 있습니다. 이로 인해 회사 전체에 Java 응용 프로그램의 배포가 복잡해질 수 있으며, 악명 높은 "Installing-this-app-breaks-my-system"이 시작된 지 5 년이 지난 후 Microsoft의 DLL 체계로 인해 문제가 발생한 이유를 고객이 정확히 궁금해하게됩니다. 그 이상으로 많이 발전하지 않았습니다. (사실, 새로운 .NET 이니셔티브는 방금 설명한 악명 높은 "DLL-Hell"문제를 해결하려고합니다.)
이 문서에서는 특정 애플리케이션이 자체적 인 개인 JRE를 수신하도록 Java 설치를 구성하는 방법을 설명하여 고객 (또는 시스템 관리자)을 미치게하지 않고 여러 Java 환경이 공존 할 수 있도록합니다.
SDKMan을 사용하여 동일한 시스템에 여러 버전의 Java 개발 키트를 설치할 수 있습니다.
SDKMan에 대한 몇 가지 사항은 다음과 같습니다.
_HOME및 PATH환경 변수 설정에 대해 걱정할 필요가 없습니다 .SDKMan은 Mac OSX, Linux, Cygwin, Solaris 및 FreeBSD와 같은 모든 UNIX 기반 플랫폼에서 실행할 수 있으며 다음 명령을 사용하여 설치할 수 있습니다.
$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
SDKMan은 bash 로 작성되었으며 시스템에 curl 및 zip / unzip 만 있으면됩니다. Windows 환경 용 Cygwin 또는 Git Bash를 먼저 설치 한 다음 위의 명령을 실행 하여 Windows 에도 SDKMan을 설치할 수 있습니다 .
Command sdk list java는 SDKMan을 사용하여 설치할 수있는 Java 버전 목록을 제공합니다.
Java 8 설치
$ sdk install java 8.0.201-oracle
Java 9 설치
$ sdk install java 9.0.4-open
Java 11 설치
$ sdk install java 11.0.2-open
Java 버전 제거
11.0.2-open과 같은 JDK 버전을 제거하려는 경우 다음과 같이 할 수 있습니다.
$ sdk uninstall java 11.0.2-open
현재 Java 버전 전환
모든 터미널 및 애플리케이션에 대해 하나의 버전의 JDK를 활성화하려면 다음 명령을 사용할 수 있습니다.
sdk default java <your-java_version>
위의 명령은 PATH 및 JAVA_HOME 변수도 자동으로 업데이트합니다. 내 기사 How to Install Multiple Versions of Java on the Same Machine에서 더 많은 것을 읽을 수 있습니다 .
"java -version : 1.5"등으로 Java를 호출하는 것은 올바른 Java 버전으로 실행되어야합니다. (분명히 1.5를 원하는 버전으로 바꿉니다.)
Java가 Windows에 올바르게 설치된 경우 사용하는 레지스트리에 저장된 각 버전에 대한 vm 경로가 있으므로 Windows의 환경 버전을 망칠 필요가 없습니다.
내 자바 버전으로 jmeter를 시작할 때 간단한 스크립트를 사용합니다.
setlocal
set JAVA_HOME="c:\java8"
set PATH=%JAVA_HOME%\bin;%PATH%;
java -version
자바 "휴대용"을 가지려면 여기에서이 방법을 사용할 수 있습니다.
Java Web Start 를 사용하는 경우 (모든 URL, 심지어 로컬 파일 시스템에서도 응용 프로그램을 시작할 수 있음) 응용 프로그램에 적합한 버전을 찾습니다.
Java Web Start를 사용하면 여러 JRE를 설치 한 다음 필요한 것을 호출 할 수 있습니다. win에서 .bat 파일을 만들 수 있습니다.
1- 온라인 버전 : < your_JRE_version \ bin \ javaws.exe> -localfile -J-Djnlp.application.href = < .jnlp 파일 .jnlp> -localfile -J "< path_temp_jnlp_file_ .jnlp>"
2- 캐시에서 시작 : < your_JRE_version \ bin \ javaws.exe> -localfile -J "< path_of_your_local_jnlp_file .jnlp>"