program story

Windows에서 동시에 실행되는 여러 Java 버전

inputbox 2020. 10. 22. 07:59
반응형

Windows에서 동시에 실행되는 여러 Java 버전


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 ...

여러 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 환경이 공존 할 수 있도록하는 방법을 설명합니다.


특정 애플리케이션에 대해 JAVA_HOME 환경 변수 설정을 다르게 변경할 수 있어야합니다.

명령 줄 또는 배치 스크립트에서 시작할 때 set JAVA_HOME=C:\...\j2dskXXXJAVA_HOME 환경을 변경하는 데 사용할 수 있습니다 .

PATH올바른 Java 바이너리를 사용하기 위해 환경 변수를 변경해야 할 수도 있습니다 . 이를 위해 set PATH=%JAVA_HOME%\bin;%PATH%.


"java -version : 1.5"등으로 Java를 호출하면 올바른 Java 버전으로 실행되어야합니다. (분명히 1.5를 원하는 버전으로 바꿉니다.)

Java가 Windows에 올바르게 설치된 경우 사용하는 레지스트리에 저장된 각 버전에 대한 vm 경로가 있으므로 Windows의 환경 버전을 망칠 필요가 없습니다.


또는 링크를 사용하십시오. 실행중인 환경에서 PATH를 업데이트하는 것은 다소 불편하지만 새 버전의 JRE / JDK에 대한 링크를 다시 만드는 것은 쉽습니다. 그래서:

  • 사용하려는 다른 버전의 JDK 설치
  • junction 또는 내장 mklink 명령 으로 해당 폴더에 대한 링크 생성
  • PATH를 링크로 설정
  • 다른 버전의 Java를 사용하려는 경우 링크를 삭제하고 새 링크를 만듭니다. PATH / JAVA_HOME / 하드 코딩 된 스크립트는 그대로 유지됩니다.

Java Web Start 를 사용하는 경우 (모든 URL, 심지어 로컬 파일 시스템에서도 응용 프로그램을 시작할 수 있음) 응용 프로그램에 적합한 버전을 찾습니다.


SDKMan을 사용하여 동일한 시스템에 여러 버전의 Java 개발 키트를 설치할 수 있습니다.

SDKMan에 대한 몇 가지 사항은 다음과 같습니다.

  1. SDKMan은 무료로 사용할 수 있으며 오픈 소스 커뮤니티에서 개발했습니다.
  2. SDKMan은 bash 로 작성되었으며 시스템에 curlzip / unzip 프로그램 있으면됩니다.
  3. SDKMan은 Java, Groovy, Scala, Kotlin 및 Ceylon과 같은 JVM 용 소프트웨어 개발 키트를 약 29 개 설치할 수 있습니다. Ant, Gradle, Grails, Maven, SBT, Spark, Spring Boot, Vert.x.
  4. SDKMan이 자동으로 처리하기 때문에 _HOMEPATH환경 변수 설정에 대해 걱정할 필요가 없습니다 .

SDKMan은 Mac OSX, Linux, Cygwin, Solaris 및 FreeBSD와 같은 모든 UNIX 기반 플랫폼에서 실행할 수 있으며 다음 명령을 사용하여 설치할 수 있습니다.

$ curl -s "https://get.sdkman.io" | bash  
$ source "$HOME/.sdkman/bin/sdkman-init.sh" 

SDKMan은 bash 로 작성되었으며 시스템에 curlzip / 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>

Above commands will also update the PATH and JAVA_HOME variables automatically. You can read more on my article How to Install Multiple Versions of Java on the Same Machine.


I use a simple script when starting jmeter with my own java versin

<code>
setlocal
set JAVA_HOME="c:\java8"
set PATH=%JAVA_HOME%\bin;%PATH%;
java -version
</code>

to have a java "portable" you can use this method here:

https://www.whitebyte.info/programming/java/how-to-install-a-portable-jdk-in-windows-without-admin-rights


Using Java Web Start, you can install multiple JRE, then call what you need. On win, you can make a .bat file:

1- online version: <your_JRE_version\bin\javaws.exe> -localfile -J-Djnlp.application.href=<the url of .jnlp file.jnlp> -localfile -J "<path_temp_jnlp_file_.jnlp>"

2- launch from cache: <your_JRE_version\bin\javaws.exe> -localfile -J "<path_of_your_local_jnlp_file.jnlp>"

참고URL : https://stackoverflow.com/questions/271609/multiple-java-versions-running-concurrently-under-windows

반응형