Блог программиста
не только о программировании

Дружественные ресурсы:

IntSystem.org | Веб-разработка, все о ней

DevOps-заметки |

01.07.2020

Установка Java на Android в 2020

Почти ровно два года назад было написано обновление к тому, как устанавливать java на android с использованием termux. На сегодняшний день эта запись больше не актуальна по некоторым причинам, о которых расскажу под катом. Также вы там найдете решение как поставить java сегодня так, что и рут не потребуется.

Почему все сломалось?

В репозитории termux-packages существует множество issue, созданных в разное время, в которых поднималась тема поддержки java для termux.

Вот пример долгих обсуждений с указанием причин проблем с поддержкой. И это один из многих топиков репозитория.

Есть некоторые альтернативные репозитории, не входящие в termux-packages. Например, есть репозиторий, который якобы позволяет установить java. Однако, у меня это сделать не получилось.

Вероятно что-то не так с бинарниками, я не сильно вдавался в подробности, кроме того что сравнил $JAVA_HOME/bin/java с тем, что работало внутри termux, например, php. Отличия выделены маркером на изображении ниже.

Может в комментариях кто-то подскажет, насколько сильно это влияет на работу и предложит какие-то решения, однако, в тех самых issue рекомендуют пересборку java, что совершенно не хочется делать.

Причем это не единственная возможная проблема, случающаяся у пользователей. Если коротко, то поддержка java становилась со временем все более тяжелым делом, и люди, занимающиеся этим в свободное время, отваливались один за другим. Плюс ко всему, имеется более простая альтернатива.

Решение

Необходимо установить пакеты wget, proot в termux

$  pkg install wget proot

Далее необходимо скачать скрипт и запустить его, следуя инструкции отсюда

Если версия android 10 выше, то

wget -q https://raw.githubusercontent.com/sp4rkie/debian-on-termux/master/debian_on_termux_10.sh && sh debian_on_termux_10.sh

В противном случае

wget -q https://raw.githubusercontent.com/sp4rkie/debian-on-termux/master/debian_on_termux.sh && sh debian_on_termux.sh

Далее просто дожидаемся окончания установки, после чего попадаем в оболочку debian и устанавливаем jdk (или jre, в зависимости от того, что нужно).

root@localhost:~# apt update
root@localhost:~# apt install openjdk-11-jdk-headless