Skip to content

FAQ по переменным среды JAVA - Помощь FineReport | Разработка отчетов | Отчеты | Учебные пособия

Часто задаваемые вопросы о переменных окружения JAVA

1. Обзор

В этой статье описаны проблемы с конфигурацией переменных окружения JAVA, вызванные некоторыми ошибками, и их решения.

Примечание: FineBI поддерживает JDK версии: JDK 1.8 и младшая версия должна быть выше JDK8u102.

2. Неподдерживаемая версия major.minor 52.0

2.1 Эта ошибка появляется в журнале запуска, запуск не удался, платформа доступа 404

Анализ причин:

FineBI больше не поддерживает JDK1.7 и ниже и поддерживает только JDK1.8, начиная с 2020-09-02.

Решение:

Замените версию JDK: JDK 1.8, а минорная версия должна быть JDK8u102 или выше.

2.2 Эта ошибка возникает во время работы проекта, соответствующий плагин не может быть использован.

Анализ причин:

Плагин скомпилирован с более высокой версией JDK, чем версия JDK переменной среды, в которой он запущен.

Решение:

Официальный релиз плагина скомпилирован в версии не выше JDK1.8, среда JAVA в JDK1.8 может быть.

3. Не удалось запустить систему Fine assist.

3.1 Провайдеры не установлены

Описание проблемы

Присутствует ошибка в журнале: Вызвано: com.sun.tools.attach.AttachNotSupportedException: не установлены провайдеры

Анализ причин

При установке JDK в Windows одновременно устанавливается автономный jre. В автономном jre нет файла attach.dll, который необходим для запуска FineBI.

Рецепт

Настройте JRE_HOME так, чтобы он не указывал на отдельную установку jre, вы должны использовать %JAVA_HOME%\jre

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

Описание проблемы

В журнале присутствует ошибка: Вызвано: 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 Не удалось загрузить библиотеку агента

Описание проблемы

Присутствует ошибка в журнале: Вызвано: com.sun.tools.attach.AgentLoadException: Не удалось загрузить библиотеку агента

1) Причина первая

Причина: Существует проблема с используемым JDK, либо неверный подсчет бит, либо JDK неполный и в нем отсутствуют некоторые функции.

Решение: Если вы не уверены, сначала используйте uname, чтобы узнать версию ОС, затем установите соответствующую версию JDK, обратите внимание, что x86 относится к архитектуре операционной системы intel, x86_64 - 64-битная, i586 - 32-битная.

2) Причина вторая

Причина: возникла проблема с указанным файлом FineAssist_xx.so, и он не может быть загружен.

Решение: Получите файл FineAssist_xx.so из основного пакета и переустановите его на конфиденциальной машине.

3.4 Невозможно открыть файл сокета

Описание проблемы

Аналогичные ошибки, не связанные с JDK, например, вызванные: com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file: target process not responding or HotSpot VM не загружена

Эта ошибка очень похожа на ту, что вызвана проблемой JDK, но она не обязательно вызвана JDK.

Анализ причин

В каталог /tmp не удается записать файлы, возможная причина этого:

  • Обычные пользователи не имеют доступа.
  • Место на диске, где находится /tmp, заполнено.

Рецепт

  • Если у вас нет прав, просто откройте права на каталог /tmp.
  • Если на диске не осталось свободного места, освободите место на соответствующем диске.

4. превышен лимит накладных расходов gc

Описание проблемы:

При использовании FineBI в журнале появляется ошибка gc overhead limit exceeded.

Анализ причин:

Эта ошибка означает, что время GC расходуется слишком много при недостатке памяти. Нам нужно отключить функцию определения времени GC, добавив параметр, чтобы jvm не выда вал ошибку GC overhead limit exceededпри нехватке памяти, а вместо этого выдавал ошибку Java heap space и создавал файл дампа, чтобы мы могли проанализировать причину проблемы.

Решение:

1)Перейдите вкаталог%Tomcat_HOME%\bin. Найдите файл с именемsetenv.sh.Если файл не существует, создайте новыйфайлsetenv.sh.

Примечание: Убедитесь, что файл setenv.sh имеет исполняемые права. Если он не имеет исполняемых прав, вы можете установить их с помощью следующей команды: chmod +x setenv.sh

2) Откройте файл setenv.sh с помощью текстового редактора. Добавьте параметр -XX:-UseGCOverheadLimit туда, где вы установили параметры -Xmx и -Xms следующим образом:

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

3) Сохраните и закройте файл setenv.sh.

4) Перезапустите сервер Tomcat, чтобы изменения вступили в силу.

5. проблемы с некоторыми версиями JDK

5.1 Версии jdk1.8.0_65 и ниже могут вызывать флэшбэки при запуске.

Описание проблемы

В журнале присутствует ошибка: java.lang.IllegalArgumentException: объект не является экземпляром объявляющего класса

Анализ причин

Версия 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, чтобы изменения вступили в силу.