방금 Java 버전 8에서 버전 12로 업그레이드했습니다. OS는 Windows 7 Home입니다.
Oracle은 더 이상 별도의 JRE를 제공하지 않으므로 프로그램을 실행할 때 Java 실행 파일의 폴더 이름을 제공해야 합니다. Java가 업데이트될 때 폴더를 더 쉽게 변경할 수 있도록 폴더 중 하나에 접합을 넣고 이를 PATH에 추가했습니다. 하지만 작동하지 않습니다. 다음은 약간 편집된 명령줄 세션입니다.
먼저 교차점과 경로가 올바른지 확인하세요.
D:\Peter\PC>dir jre*
27/09/2019 15:11 <JUNCTION> JREDir [C:\Program Files\Javajdk-12.0.1\bin]
D:\Peter\PC>dir jredir\java*
Volume in drive D is DATA
Volume Serial Number is CE44-C814
Directory of D:\Peter\PC\jredir
27/09/2019 11:36 148,328 java.dll
27/09/2019 11:36 51,048 java.exe
27/09/2019 11:36 226,664 javaaccessbridge.dll
27/09/2019 11:36 20,840 javac.exe
27/09/2019 11:36 20,840 javadoc.exe
27/09/2019 11:36 174,952 javajpeg.dll
27/09/2019 11:36 20,840 javap.exe
27/09/2019 11:36 51,048 javaw.exe
8 File(s) 714,560 bytes
0 Dir(s) 149,081,808,896 bytes free
C:\>path
PATH=C:\Program Files (x86)...ls\Binn\;D:\Peter\PC\JREDir
이제 접합 이름을 사용하여 Java를 실행해 보십시오.
D:\Peter\PC>jredir\java -version
Error: opening registry key 'Software\JavaSoft\JRE'
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
이것은 Java 실행 파일을 찾는 것 같지만 레지스트리 키가 필요합니다. 그러나 실행 파일 디렉토리에 CD를 삽입하는 것은 괜찮습니다!
C:\Program Files\Java\jdk-12.0.1\bin>java -version
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
java version "12.0.1" 2019-04-16
Java(TM) SE Runtime Environment (build 12.0.1+12)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)
명시적인 디렉터리 이름으로 실행하는 경우도 마찬가지입니다.
D:\Peter\PC>"C:\Program Files\Java\jdk-12.0.1\bin"\java -version
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
java version "12.0.1" 2019-04-16
Java(TM) SE Runtime Environment (build 12.0.1+12)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)
그러나 경로를 사용하여 실행하면 그렇지 않습니다.
C:\>java -version
Error: opening registry key 'Software\JavaSoft\JRE'
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
그래서 두 가지 질문이 있습니다.
- 왜 접합이 작동하지 않습니까? 나는 심볼릭 링크를 시도했지만 그것도 작동하지 않았습니다.
- 작동하려면 레지스트리에 무엇이 필요합니까?
답변1
나는 그것이 오래된 질문이라는 것을 알고 있지만 나중에 참조할 수 있도록 공유하고 있습니다.
이 예에서는 접합이 한 레벨 너무 깊습니다. 그러면 안 되지만 C:\Program Files\Javajdk-12.0.1\bin
오히려C:\Program Files\Javajdk-12.0.1