反饋已提交

網絡繁忙

JAVA環境變量注意事項

一、概述

  1. 本文介紹因 JAVA 環境變數配置有問題導緻的一些報錯及解決方案。

注:FineReport 支援的 JDK 版本為:JDK 1.8 且小版本需在 JDK8u102 以上。

二、範例

1
日誌存在報錯:Unsupported major.minor version 52.0。
  1. 現象一:啟動日誌出現此報錯,啟動失敗,訪問平台404。

    原因分析:FR10.0 從 2020-08-03 開始就不再支援 JDK1.7 及以下版本,僅支援 JDK1.8 。

    解決方案:更換JDK 版本為:JDK 1.8 且小版本需在 JDK8u102 以上。

  2. 現象二:工程運作中出現此報錯,存在對應插件無法使用。

    原因分析:插件編譯使用的 JDK 版本高於運作的環境變數的 JDK 版本。

    解決方案:官方發布的插件編譯版本都是不高於 JDK1.8 的,JAVA環境換成 JDK1.8 即可。


2
啟動失敗:Fine assist start failed.。
  1. 現象一:

    問題描述:日誌報錯存在【Caused by: com.sun.tools.attach.AttachNotSupportedException: no providers installed】。

    原因分析:Windows 下安裝 JDK 會同時安裝一個獨立的 jre ,獨立安裝的 jre 下沒有 attach.dll 這個檔案,FR11.0 啟動需要呼叫這個檔案。

    解決方案:配置 JRE_HOME 不能指向獨立安裝的 jre ,必須使用【%JAVA_HOME%\jre】。

  2. 現象二:

    問題描述:日誌報錯存在【Caused by: java.lang.UnsatisfiedLinkError: sun.tools.attach.LinuxVirtualMachine.isLinuxThreads()Z】。

    原因分析:Windows 下部署卻放了 Linux 的 tools.jar 。

    解決方案:【%JAVA_HOME%\lib】獲取 tools.jar 放到【webroot/WEB-INF/lib】下或者【tomcat/lib】下。

  3. 現象三:

    問題描述:日誌報錯存在【Caused by: com.sun.tools.attach.AgentLoadException: Failed to load agent library】。

    原因分析:安裝的 JDK 位數不對,安裝的 JDK 版本一定要與工件系統匹配,64 位工件系統是可以安裝 32 位 JDK 的,但是 FR11.0 不支援這樣的操作,必須保持統一。

    解決方案:不應答的話先用 uname 獲取下工件系統版本,再安裝對應版本的 JDK ,注意 x86 指的是 intel 的工件系統架構,x86_64是 64 位,i586 是32位的。

  4. 現象四:

    問題描述:非 JDK 導緻的類似報錯,如【Caused by: com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM not loaded】。這個報錯看起來和 JDK 問題導緻的報錯很像,但是卻不一定是 JDK 導緻的。

    原因分析:/tmp 目錄無法寫入檔案,可能導緻這個現象的原因是:普通使用者沒有權限或是/tmp 所在磁碟空間已滿。

    解決方案:若沒有權限,把/tmp目錄的權限開放即可。若磁碟空間了,則清理下對應磁碟的空間。

3
部分 JDK 版本存在的問題。
  1. jdk1.8.0_65以下版本可能會導緻啟動閃退:

    問題描述:日誌報錯存在【java.lang.IllegalArgumentException: object is not an instance of declaring class】。

    原因分析:bytebuddy 版本不相容。

    解決方案:升級 JDK 版本,建議升級到較高版本的 JDK1.8 。

  2. jdk1.8.0_171可能導緻範本預覽空白:

    問題描述:所有範本預覽空白。

    原因分析:oracle1.8.0_171_b11 會導緻範本預覽空白。

    解決方案:更換JDK 版本為:JDK 1.8 且小版本需在 JDK8u102 以上。


三、Tomcat 指定 JDK

1
Windows 系統。
  1. 修改 tomcat/bin 下的 catalina.bat(以部署包為例),如下圖所示。

2
Linux 系統。
  1. 修改 tomcat/bin 下的 catalina.sh(以部署包為例),如下圖所示。

  2. Linux 版部署包下指定 JDK 路徑是特殊要求的,必須是定義了CATALINA_HOME之後,初次呼叫 JAVA_HOME 之前,所以只能加這個位置。

  3. 非部署包可以指向絕對路徑下的 JDK ,沒有 CATALINA_HOME 的限制,就只要新增在初次呼叫 JAVA_HOME 之前即可。

附件列表


主題: 部署集成
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙