Elementary-Os

更改tomcat6使用的JRE/JDK

  • December 16, 2018

需要更改我的 tomcat6 伺服器使用的 JRE,因為我有一個 JSP 應用程序,它已經編譯了類JDK 1.8.0_45

然後因為我有JRE 1.8.0_40(並且被 tomcat 使用),我在執行時在我的 JSP 應用程序中遇到了一個故障:

The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files

所以我已經安裝了JRE 1.8.0_45,只需下載它,然後提取並移動到:

/usr/lib/jvm/jre1.8.0_45/

然後更新以使用它(如您所見,抱歉,因為它是西班牙語):

更新替代方案

所以我只是重新啟動電腦,然後尋找哪個 JRE 正在使用 tomcat ……但發現了類似的東西(抱歉,如果這不是最好的查看方式,我認為這是更簡單的方式):

ps -aux | grep tomcat

Tomcat6執行

如您所見, grep 輸出中的第一“行”是執行 tomcat (不是嗎?),但它似乎使用 JDK 而不是 JRE。此外,它正在使用JDK1.8.0_40,而我JDK1.8.0_45在建構我的應用程序時在同一台 PC 上使用:

我使用的JDK

如果我們檢查JDK選項,選擇的沒有指定版本,所以我不知道它是否有問題:

替代品 JDK

所以這是我的問題,我只是想知道如何將 tomcat 使用的 JDK/JRE 版本更改為 u45

我需要解決所有這些混亂。

你可以通過設置JAVA_HOME變數來解決這個問題/etc/default/tomcat6(我假設基本作業系統仍然有 Debian/Ubuntu Tomcat 包)。

不過,您遇到的錯誤相當令人驚訝,我不希望Map$Entry在 JDK 1.8.0_40 和 1.8.0_45 之間切換時會出現錯誤。

引用自:https://unix.stackexchange.com/questions/205206