여기서 상호 교환 적으로 논의되는 두 가지 환경 변수를 구별해야합니다. 하나는 JAVA_HOME 변수입니다. 다른 하나는 Path 변수입니다. JAVA_HOME 변수를 참조하는 프로세스는 JRE가 아닌 JDK에 대한 검색 경로를 찾고 있습니다. JAVA_HOME 변수 사용은 Java 컴파일러 자체를위한 것이 아닙니다. 컴파일러는 자체 위치를 알고 있습니다. 변수는 다른 소프트웨어가 컴파일러를보다 쉽게 찾을 수 있도록하기위한 것입니다. 이 변수는 일반적으로 Java 소스 코드에서 응용 프로그램을 컴파일하고 빌드하기 위해 IDE 소프트웨어에서 사용됩니다. 반대로 Windows CMD 인터프리터 및 기타 많은 제 1 및 타사 소프트웨어는 JAVA_HOME 변수가 아닌 Path 변수를 참조합니다.
사용 사례 1 : CMD에서 컴파일
예를 들어, IDE 소프트웨어를 사용하지 않고 현재 작업 디렉토리와 상관없이 CMD에서 컴파일 할 수있게하려면 Path 변수를 올바르게 설정하면됩니다. 귀하의 경우에는 JAVA_HOME 변수가 필요하지 않습니다. CMD는 JAVA_HOME이 아닌 Path를 사용하여 Java 컴파일러를 찾습니다.
사용 사례 2 : IDE에서 컴파일
당신이 경우, 하는 일부 IDE 소프트웨어를 사용하여, 당신은 우선 문서를보고 있습니다. JAVA_HOME을 설정해야하지만 동일한 목적으로 다른 변수 이름을 사용할 수도 있습니다. 수년에 걸쳐 사실상의 표준은 JAVA_HOME이지만 이것이 항상 그런 것은 아닙니다.
사용 사례 3 : IDE 및 CMD에서 컴파일
IDE 소프트웨어 외에 현재 작업 디렉토리와 상관없이 CMD에서 컴파일 할 수있게 하려면 JAVA_HOME 변수 외에도 JDK 검색 경로를 Path 변수에 추가해야합니다.
JAVA_HOME 및 경로
문제점이 Java 컴파일과 관련된 경우 JAVA_HOME 변수 및 Path (해당되는 경우)를 확인하려고합니다. 문제가 Java 응용 프로그램 실행과 관련이 있으면 Path 변수를 확인하려고합니다.
경로 변수는 모든 운영 체제에서 보편적으로 사용됩니다. 시스템에 의해 정의되고 JRE를 찾는 데 사용되는 기본 변수이기 때문에 Java 응용 프로그램을 실행하는 데 거의 아무런 문제가 없습니다. 특히 소프트웨어 설치 프로그램이 일반적으로 모든 것을 설정하는 Windows에서는 그렇지 않습니다. 그러나 수동으로 설치하는 경우 가장 안전한 방법은 JAVA_HOME 변수를 모두 건너 뛰고 JDK와 JRE 모두에 대해 Path 변수를 사용하는 것입니다. 최신 버전의 IDE 소프트웨어는이를 선택하여 사용할 수 있어야합니다.
심볼릭 링크
심볼릭 링크는 기존 환경 변수 중 하나를 피기 백하여 JDK 검색 경로를 참조하는 또 다른 방법을 제공 할 수 있습니다.
나는 오라클 / 썬 JDK / JRE 릴리스의 이전 버전에 대해 잘 모르겠지만, 적어도 jdk1.8.0_74에 대한 설치 프로그램 검색 경로 추가 C:\ProgramData\Oracle\Java\javapath
경로 변수를, 그리고 그것이 문자열 값의 시작 부분에 넣는다. 이 디렉토리에는 JRE 디렉토리의 java.exe, javaw.exe 및 javaws.exe에 대한 기호 링크가 있습니다.
따라서 최소한 Java 8 JDK 및 아마도 Java 8 JRE 독립형을 사용하면 JRE에 환경 변수 구성을 수행 할 필요가 없습니다. 설치 프로그램 패키지를 사용하여 설정하는 한. 그러나 Windows 설치에 차이가있을 수 있습니다. Oracle JRE는 JDK와 함께 번들로 제공됩니다.
Java JDK 구성이 잘못된 버전의 컴파일러를 사용하고 있거나 명시 적으로 정의하지 않고 (주문을 캐스팅하지 않고) 마술로 작동하는 것으로 보이면 환경 변수 어딘가에 심볼릭 링크가있을 수 있습니다 . 따라서 심볼릭 링크를 확인하고 싶을 수도 있습니다.