反馈已提交

网络繁忙

JAVA环境变量常见问题

  • 文档创建者:知识库
  • 历史版本:6
  • 最近更新:Carly 于 2024-08-01
  • 1. 概述

    本文介绍因 JAVA 环境变量配置有问题导致的一些报错及解决方案。

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

    2. Unsupported major.minor version 52.0

    2.1 启动日志出现此报错,启动失败,访问平台404

    原因分析

    FR10.0 从 2020-08-03 开始就不再支持 JDK1.7 及以下版本,仅支持 JDK1.8 。

    解决方案

    更换JDK 版本为:JDK 1.8 且小版本需在 JDK8u102 以上。

    2.2 工程运行中出现此报错,存在对应插件无法使用

    原因分析

    插件编译使用的 JDK 版本高于运行的环境变量的 JDK 版本。

    解决方案

    官方发布的插件编译版本都是不高于 JDK1.8 的,JAVA环境换成 JDK1.8 即可。

    3. Fine assist start failed.

    3.1  no providers installed

    问题描述

    日志报错存在:Caused by: com.sun.tools.attach.AttachNotSupportedException: no providers installed

    原因分析

    Windows 下安装 JDK 会同时安装一个独立的 jre ,独立安装的 jre 下没有 attach.dll 这个文件,FR11.0 启动需要调用这个文件。

    解决方案

    配置 JRE_HOME 不能指向独立安装的 jre ,必须使用%JAVA_HOME%\jre

    3.2 sun.tools.attach.LinuxVirtualMachine.isLinuxThreads()Z

    问题描述

    日志报错存在: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.3 Failed to load agent library

    问题描述

    日志报错存在: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位的。

    3.4 Unable to open socket file

    问题描述

    非 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目录的权限开放即可。

    • 若磁盘空间了,则清理下对应磁盘的空间。

    4. gc overhead limit exceeded

    问题描述:

    在 FineReport 使用过程中,日志出现 gc overhead limit exceeded 报错。

    原因分析:

    该报错为在内存不足的时候,GC 时间消耗太多。需要通过加入参数关闭 GC 时间检测特性,使得 jvm 在内存不足时不抛GC overhead limit exceeded,而抛出 Java heap space 并生成 dump 文件,以便于分析问题原因。

    解决方案:

    1)进入%Tomcat_HOME%/bin目录。寻找名为setenv.bat的文件。如果文件不存在,可以创建一个新的setenv.bat文件。

    注:请确保setenv.sh文件具有可执行权限。如果没有可执行权限,可以使用以下命令进行设置:chmod +x setenv.sh

    2)使用文本编辑器打开setenv.bat文件。在设置-Xmx、-Xms参数的位置,添加-XX:-UseGCOverheadLimit参数设置,如下:

    JAVA_OPTS="$JAVA_OPTS -Xms2048M -Xmx8196M -XX:-UseGCOverheadLimit"

    3)保存并关闭setenv.bat文件。

    4)重启Tomcat服务器以使修改生效。

    5. 部分 JDK 版本存在的问题

    5.1 jdk1.8.0_65以下版本可能会导致启动闪退

    问题描述

    日志报错存在:java.lang.IllegalArgumentException: object is not an instance of declaring class

    原因分析

    bytebuddy 版本不兼容。

    解决方案

    升级 JDK 版本,建议升级到较高版本的 JDK1.8 。

    5.2 jdk1.8.0_171可能导致模板预览空白

    问题描述

    所有模板预览空白。

    原因分析

    oracle1.8.0_171_b11 会导致模板预览空白。

    解决方案

    更换JDK 版本为:JDK 1.8 且小版本需在 JDK8u102 以上。

    6. Tomcat 指定 JDK

    6.1 Linux

    1)进入%Tomcat_HOME%\bin目录。寻找名为setenv.sh的文件。如果文件不存在,可以创建一个新的setenv.sh文件。

    注:请确保setenv.sh文件具有可执行权限。如果没有可执行权限,可以使用以下命令进行设置:chmod +x setenv.sh

    2)使用文本编辑器打开setenv.sh文件。在文件中添加以下行来指定JDK路径:

    注:请确保此路径为有效的目录路径。请确保Tomcat用户具有必要的权限来访问和写入该目录。

    export JAVA_HOME=/path/to/jdk

    export JRE_HOME=/path/to/jdk/jre

    3)保存并关闭setenv.sh文件。

    4)重启Tomcat服务器以使修改生效。

    6.2 Windows

    1)进入%Tomcat_HOME%\bin目录。寻找名为setenv.bat的文件。如果文件不存在,可以创建一个新的setenv.bat文件。

    2)使用文本编辑器打开setenv.sh文件。在文件中添加以下行来指定JDK路径:

    注:请确保此路径为有效的目录路径,并且使用反斜杠(\)作为目录分隔符。请确保Tomcat用户具有必要的权限来访问和写入该目录。

    set "JAVA_HOME=C:\path\to\jdk"

    set "JRE_HOME=C:\path\to\jdk\jre"

    3)保存并关闭setenv.bat文件。

    4)重启Tomcat服务器以使修改生效。

    附件列表


    主题: 部署集成
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持