Установка 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