使用可執行檔案資料夾的聯結運行 Java 不起作用

使用可執行檔案資料夾的聯結運行 Java 不起作用

我剛從Java版本8升級到版本12。

由於 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. 為什麼連接處不工作?我嘗試了符號鏈接,但也不起作用。
  2. 註冊表中需要什麼才能讓它工作?

答案1

我知道這是一個老問題,但我分享以供將來參考。

在範例中,連接點太深了一層。不應該是C:\Program Files\Javajdk-12.0.1\bin而是C:\Program Files\Javajdk-12.0.1

相關內容