2012-12-05 4 views
13

최근에 내 Java 버전을 확인했습니다. 나는 java -version 명령을 실행했고 나는 java version 1.7.0_09을 사용하고 있다는 것을 알아 냈습니다. 하지만 C:\Program Files\Java\ 디렉토리를 확인하려고하면 같은 버전을 찾지 못하는 것 같습니다. 난 단지 다음을 참조 :다른 Java 버전이 명령 줄에 표시됩니다.

  • j2re1.4을
  • jdk1.6.0_32
  • jdk1.7.0_06
  • jdk1.7.0_07
  • JRE6
  • jre7

등등 ...

내 p 프로그램은 여전히 ​​실행되지만 모든 것을 수동으로 컴파일하려고하고 Java가 OS에 의해 처리되는 방식을 이해하려고합니다.

이상한 또 다른 것은 환경 변수 설정을 확인하려고했지만 아무 것도 말하지 않습니다. jdk1.7.0_09.

경로 :

  • C : \ 프로그램 파일 \ 공용 Files \ Microsoft Shared \ 윈도우 라이브;
  • % SystemRoot % \ system32;
  • % SystemRoot %;
  • % SystemRoot % \ System32 \ Wbem;
  • % SYSTEMROOT % \ System32 \ WindowsPowerShell \ v1.0 \;
  • C : \ Program Files \ TortoiseSVN \ bin;
  • C : \ Program Files \ Windows Live \ Shared;
  • C : \ eclipse \ plugins \ com.google.appengine.eclipse.sdkbundle_1.6.5 \ appengine-java-sdk-1.6.5 \ bin;
  • C : \ Program Files \ Java \ jdk1.7.0_07 \ bin \ C : \ Program Files \ QuickTime \ QTSystem \;

  • 퍼센트 ANT_HOME의 % \ bin에 그냥 너희들이 어떻게 든 자동으로 JRE 된 것을 알 수 있도록합니다.

    전체 디렉토리는 C:\Users\User02\AppData\LocalLow\Sun\Java\jre1.7.0_09이며 파일 이름은 lzma.dll입니다.

    그러나 나는 C:\Users\User02\AppData\LocalLow\Sun\Java\jdk1.7.0_07이라는 또 다른 디렉토리가 있습니다. 그 안에 파일은 다음과 같습니다

    • jdk1.7.0_07.msi
    • sj170070.cab
    • ss170070.cab
    • st170070.cab
    • 그리고 그건
  • +0

    나만입니까? 아니면 같은 이름의 두 개의 디렉토리가 있습니까? – stevevls

    +1

    컴퓨터의 다른 프로그램처럼 경로를 명시 적으로 지정하지 않으면 경로가 설정됩니다. ** 편집 : ** 참조 : http://www.computerhope.com/issues/ch000549.htm –

    +1

    Windows에서 검색을 사용하고'java'의 모든 인스턴스를 찾으십시오. 당신의 경로는 그 위치 중 하나를 가리키며, 단지 'java'라고 입력하면 얻을 수 있습니다. –

    답변

    14

    sz170070.cab 가능한 많은 JRE를 컴퓨터에 나란히 배치 할 수 있습니다.

    JRE가 Windows에 제대로 설치된 경우 각 버전에 대한 정보는 레지스트리에 저장됩니다. 설치 프로세스에서는 특수 java.exe을 시스템 경로 (% SYSTEMROOT % \ System32)에 설치합니다. 따라서이 특수 java.exe가 현재 JRE를 찾을 것이므로 PATH를 변경할 필요가 없습니다. 명령 줄에서 java -version을 입력하여 설치된 현재 jre 버전을 표시하십시오.

    릴리스 1.6에서는 레지스트리 수정없이 마지막 JRE와 다른 JRE 설치를 선택할 수 있습니다.

    JRE를 설치

    는 \ 키

    HKEY_LOCAL_MACHINE \ 소프트웨어에서 레지스트리에 나와있는 자바 소프트 \ 자바 런타임 환경

    A의이 간단한 테스트 클래스

    public class ShowVersion { 
    public static void main(String args[]) { 
        System.out.println(System.getProperty("java.version")); 
    } 
    } 
    

    를 타고 1.6과 1.5가 설치된 시스템입니다. 입력 할 경우

    > java ShowVersion 
    

    마지막으로 설치 한 이후로 사용되는 1.6 JRE 일 것입니다.

    대신 1.5 JRE를 강제 실행하려면이 명령 줄을 사용하십시오.

    > java -version:"1.5" ShowVersion 
    

    바이트 코드가 지정된 JRE와 호환되지 않으면 물론 작동하지 않습니다.

    심판 : technote java 6

    당신은 항상 특정 설치를 사용하는 전체 경로를 제공 할 수 있습니다. 이 방법으로 JVM을 시작하면 레지스트리 설정이 전혀 사용되지 않습니다.

    >"C:\Program Files\Java\j2re1.4.1_02\bin\java" -version 
    java version "1.4.1_02" 
    

    소스 : Select a particular JRE from the command line은 "실제"질문에 대한 대답에서

    +0

    이 기능은 [JDK9] (https://bugs.java.com/view_bug.do?bug_id=JDK-8050071)에서 삭제되었습니다. 슬픈 일입니다. – RealHowTo

    2

    :

    이상한 또 다른 한가지는 내가 환경 변수 설정을 확인하려하고, 그렇지 않습니다 jdk1.7.0_09에 대해 뭐든지 말해봐.

    여기서 일어난 일은 jdk1.7.0_07을 설치 한 다음 자동 업그레이드 한 것입니다. 이런 일이 발생하면 원래 설치 한 이전 폴더 이름을 계속 사용합니다.

    Java를 설치 한 후에는 대개 JDK 디렉토리의 복사본을 만들고 버전 번호를 지정합니다. 그럼, 직접과 같이 특정 자바를 호출 할 수

    @echo off 
    :: testjava.bat 
    set JAVA_HOME=C:\JDK1.x.xx 
    set PATH=%JAVA_HOME%\bin;%PATH%;. 
    java -version 
    pause 
    

    그래서, 내 추천은 제가 위에서 보여처럼 JAVA_HOME 시스템 변수와 PATH 변수를 설정하는 것입니다. 이렇게하면 시스템의 모든 항목이 무시되므로 원하는 JDK가 JRE를 통한 기본값이됩니다.

    +0

    JDK에서 자동 업데이트를 사용할 수 있습니까? ([관련 질문.] (http://stackoverflow.com/questions/1829986/is-there-a-way-to-update-the-jdk-without-manually-downloading-the-new-version)) 나는 생각했다. JRE만이 자동 업데이트되었습니다. – Brian

    +0

    그게 사실이야. 이 경우 java JRE가 Java의 주 버전 이름을 따서 명명 된 디렉토리에 Program Files에 설치되고 부 버전 또는 빌드 번호는 포함되지 않는 이유가 설명됩니다. 그것은 자동 업그레이드이기 때문입니다.따라서이 경우 자신의 시스템은 업데이트 된 JRE7을 기본 Java로 지정하고 해당 Java의 버전은 부 버전 09로 자동 업그레이드됩니다. – djangofan

    2

    귀하의 의견에있는 해당 AppData 경로가 아마 당신의 경로 (어쨌든, 어쨌든)에 있지 않으므로 사용하고 있지 않은 것일 수 있습니다. 불행히도 Windows에는 which 명령이 없습니다.

    경로를 편집하고 C:\Program Files\Java\bin 디렉토리를 목록의 맨 처음으로 이동해도 여전히 1.7.0_09이 인쇄되면 JDK7u7 폴더에 JDK7u9가있는 것입니다. 그렇지 않은 경우 경로의 다른 모든 디렉토리를 찾아 해당 java 파일을 찾을 때까지 1 씩 열어야합니다. 운 좋게도 경로는 보다 짧습니다. 하고 있음을

    참고 :

    > java -version 
    

    는 또한 java.bat 및 기타 비 exe 확장을 찾아, 그래서 당신은 당신의 경로를 검색하는 동안 이것에 대한 눈을 밖으로 유지 할 수 있습니다. 실행 해보십시오 : 당신이을 알고

    > java.exe -version 
    

    그런 식으로 당신은 exe 파일을 찾고 있습니다.

    마지막 한가지 당신이 시도 할 수 있습니다 :

    > "C:\Program Files\Java\jdk1.7.0_07\bin\java" -version 
    

    을이 1.7.0_09를 돌려주는 경우, 뭔가 AFAIK 일이 안되어 현재 위치에서 당신의 JDK를 업데이트 일어났다 (하지만 잘못 될 수 있음) .

    2

    문제가 해결됩니다 다음 추가 : 그것은, 즉 여러 자바 버전에 대한 PATH 설정 한 의미 일 등 최신 일을하고 PATH 변수에서 모두 제거하지 않는 경우 또한

    set JAVA_HOME="your jdk path" 
    set PATH=%JAVA_HOME%\bin;%PATH%. 
    

    합니다.

    관련 문제