JDK

Для запуска и работы биллинга требуется Java SE Development Kit 8 (или сокращенно - JDK8). Последнюю версию для вашей платформы можно найти по адресу http://www.oracle.com/technetwork/java/javase/downloads/index.html. Необходимо загрузить именно Java SE JDK (JRE + средства разработки), а не JRE (только Java-машина), т.к. биллинг использует динамическую компиляцию кода, кроме того, средства разработки могут быть полезны при расследовании нештатных ситуаций в системе.

Обратите внимание, что для нормальной работы приложений биллинга рекомендуется JDK производства Oracle. Приложения биллинга, в общем случае, могут быть запущены на любой платформе, для которой выпускается JDK. Это Windows, Linux, Solaris, MacOS. В официальной поставке включены скрипты запуска только для Linux (sh-скрипты, скрипты сервисов) и Windows (Batch).

JDK должна быть установлена на всех серверах с компонентами биллинга, в т.ч. на клиентских машинах. Также JDK необходим для запуска ActiveMQ.

Linux

Загрузите .tar.gz файл (например, jdk-8u191-linux-x64.tar.gz), скопируйте его в директорию /opt/java (создайте, если её нет), перейдите в неё, распакуйте архив, появится подкаталог, например jdk1.8.0_191. Для более удобного обновления Java в дальнейшем рекомендуем перейти в папку /opt/java и создать символическую ссылку /opt/java/jdk8 к папке /opt/java/jdk1.8.0_191.

ln -s jdk1.8.0_191 jdk8

Путь /opt/java/jdk8 является JAVA_HOME - путём к Java-машине. Вы можете указать JAVA_HOME глобально для всех приложений, создав файл /etc/profile.d/java_home.sh с содержимым:

#!/bin/sh
 
JAVA_HOME=/opt/java/jdk8

Или же вы можете указать JAVA_HOME в скриптах запуска (например, setenv.sh в BGBillingServer).

При использовании Gentoo Linux обнаружена проблема с некорректным определением java текущей временной зоны. Данная ошибка связана с тем, что Oracle Java определяет временную зону по содержимому файла /etc/sysconfig/clock, который отсутствует в данном дистрибутиве.

Для решения проблемы создайте этот файл самостоятельно, заполнив следующим содержимым:

# The ZONE parameter is only evaluated by system-config-date.
# The timezone of the system is defined by the contents of /etc/localtime.
ZONE="Asia/Yekaterinburg"
UTC=false
ARC=false

Название временной зоны вы можете получить из названия каталога и файла в /usr/share/zoneinfo. Правильность установки зоны можно проверить по отметкам времени, выводимому в логе BGBillingServer/log/server.log, либо в любом другом логе.

Windows

Загрузите установочный .exe файл (например jdk-8u191-windows-x64.exe) и запустите его установку. Рекомендуем устанавливать ближе к корню диска, например C:\Java\JDK8. Иначе при установке в Program Files путь будет содержать пробелы, что неудобно при использовании в batch-файлах и командной строке.

Установка производится мастером, смените каталог установки на не содержащий пробелы, выбрав опцию Change destination folder в начале установки.

Проверьте, что системная переменная JAVA_HOME указывает на каталог установки JDK, а также на наличие в переменной PATH пути до исполнимого файла java.exe. Команда java -version в консоли должна возвращать правильную версию Java-машины.