當前為5.1版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

JAVA環境變數配置

1. 概述

本文介紹因 JAVA 環境變數配置有問題導致的一些報錯及解決方案。注:FineBI 支援的 JDK 版本為:JDK 1.8 且小版本需在 JDK8u102 以上。

2. 範例

2.1 日誌存在報錯:Unsupported major.minor version 52.0

2.1.1 現象一:啟動日誌出現此報錯,啟動失敗,存取平台404

原因分析

FineBI 從 2020-09-02 開始就不再支援 JDK1.7 及以下版本,僅支援 JDK1.8 。

解決方案

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

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

原因分析

插件編譯使用的 JDK 版本高於運作的環境變數的 JDK 版本。

解決方案

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

2.2 啟動失敗:Fine assist start failed.

2.2.1 現象一

問題描述

日誌報錯存在:Caused by: com.sun.tools.attach.AttachNotSupportedException: no providers installed

原因分析

Windows 下安裝 JDK 會同時安裝一個獨立的 jre ,獨立安裝的 jre 下沒有 attach.dll 這個檔案,FineBI 啟動需要呼叫這個檔案。

解決方案

配置 JRE_HOME 不能指向獨立安裝的 jre ,必須使用%JAVA_HOME%\jre

2.2.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下。

2.2.3 現象三

問題描述

日誌報錯存在:Caused by: com.sun.tools.attach.AgentLoadException: Failed to load agent library

1)原因一

原因:使用的 JDK 存在問題,可能是位數不對,也可能是 JDK 不完整,少了部分功能。

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

2)原因二

原因:指向的 FineAssist_xx.so 檔案存在問題,無法載入。

解決方案:重新從 core 包中獲取 FineAssist_xx.so 檔案,涉密機重新安裝下 so 檔案。

2.2.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目錄的權限開放即可。

  • 若磁碟空間了,則清理下對應磁碟的空間。

2.3 部分 JDK 版本存在的問題

2.3.1 jdk1.8.0_65以下版本可能會導致啟動閃退

問題描述

日誌報錯存在:java.lang.IllegalArgumentException: object is not an instance of declaring class

原因分析

bytebuddy 版本不相容。

解決方案

升級 JDK 版本,建議升級到較高版本的 JDK1.8 。

2.3.2 jdk1.8.0_171可能導致範本預覽空白

問題描述

所有範本預覽空白。

原因分析

oracle1.8.0_171_b11 會導致範本預覽空白。

解決方案

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

3. Tomcat 指定 JDK

3.1 Windows 系統

修改 tomcat/bin 下的 catalina.bat(以部署包為例),如下圖所示:

86.png

3.2 Linux 系統

修改 tomcat/bin 下的 catalina.sh(以部署包為例),如下圖所示:

1623071760726981.png

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

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


附件列表


主題: 部署集成
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 评价文档,奖励 1 ~ 100 随机 F 豆!