前言
该文章为使用安卓手机安装Termux高级终端后,运行完整的Java开发环境,其中的内容参考多篇文章以及结合自己实际操作后,确认可行后,整理并发布,如有侵权请联系删除
Termux高级终端下载地址:(推荐F-Droid下载)
F-Droid下载
Google Play下载
使用官方提供的JDK
使用termux提供的jdk是要简单许多的,我们只需要引入2个命令即可,
命令如下:
-
查询官方提供的JDK
pkg search jdk
这个命令会查找官方提供的jdk的版本 -
安装JDK
pkg install openjdk-17
具体的版本以步骤1查询到的版本为准 -
验证安装是否成功
java -version
如果输出jdk版本即为安装成功,不过该方式只能安装官方提供的版本,如果安装自己需要的某个版本的jdk,就需要使用以下方法了
一、完成termux端相关配置
1. 更换镜像源
官方的源在国内下载速度有些慢,可以尝试更换为清华源,卡住的话多按几次回车 不要傻乎乎的等,如下:
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list
sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list
pkg update
2.安装相应的依赖
如果没有root权限可以将tsu更换为 termux-chroot
pkg install zsh tsu wget curl vim git openssh -y
3.授予termux读取文件的的权限
termux-setup-storage
执行成功后,会在home下生成一个 storage/ 目录,其中storage/shared/ 目录就是手机存储的根目录
4.创建手机存储目录的软连接
创建软连接的目的是为了方便我们后续的使用,如果没有软连接,我们可能需要一长串的命令来完成一个文件的操作,创建软连接的操作如下:
4.1创建手机存储文件的Download目录的软连接
命令如下:
ln -s storage/shared/Download/ download
执行成功后目录如下:
4.创建ssh连接
此操作主要是为了方便后续操作,因为手机敲命令确实不如电脑来的方便,从具体操作如下:
4.1安装openssh依赖(已安装请忽略)
命令如下:
pkg install openssh
4.2电脑端生成ssh连接密钥
电脑进入cmd进入命令行模式后执行:
ssh-keygen
执行完毕之后,可以在C:\User\用户.ssh中看到一个my_rsa和my_rsa.pub文件,把my_rsa.pub文件拷贝到手机外部存储根目录中,即storage/shared
4.3在termux中添加公钥信息
需要先确保my_rsa.pub存在于storage/shared/目录下,进入手机Termux。依次输入以下命令:
#进入home目录
cd ~
#拷贝公钥信息
cp storage/shared/my_rsa.pub ./.ssh
#进入.ssh目录
cd ~/.ssh
#设置公钥信息
cat my_rsa.pub >> authorized_keys
至此,已添加公钥信息到手机
4.4确认termux的登录名和ip
确认ip ip addr
确认用户名 whoami
设置密码:passwd
(注意:在输入密码的时候是看不到的)
4.5电脑连接手机termux
-
直接命令行连接
ssh 用户名@ip -p 8022
其中用户名是在上面查询到的termux当前用户,ip是上面查询到的termux当前ip地址,8022是ssh连接的端口号 -
xshell连接
新建会话,属性如下:
5.下载安装JDK
5.1下载jdk
可以自行在Oracle官网下载自己需要的jdk版本,注意选择linux-aarch64的版本,也可以选择楼主提供的jdk1.8的版本,连接如下:
jdk-8u301-linux-aarch64.tar
5.2将安装包传输到termux中
-
将压缩包移动到手机存储根目录,即storage/shared/Download 目录
-
进入termux中,将jdk压缩包拷贝到termux的home目录下
命令如下:
cp download/jdk-8u301-linux-aarch64.tar.gz ~
-
解压jdk
tar -zxvf jdk-8u301-linux-aarch64.tar.gz
-
获取jdk的安装目录
命令如下:
cd ~/jdk1.8.0_301/
(进入解压出来的jdk目录中)
pwd
(输出当前目录位置) -
记下第4步获取到的文件目录
如:/data/data/com.termux/files/home/jdk1.8.0_301 -
先安装linux,暂不设置环境变量
6.安装linux系统
6.1安装 安装proot-distro
pkg install proot-distro
目前,它支持以下发行版:
Alpine Linux(别名:alpine)-最小的可用发行版。
Arch Linux(别名:archlinux)
Debian 10 Buster(别名:debian-buster)
Kali Nethunter(别名:nethunter)-当前只有最小的构建。
Ubuntu(别名:ubuntu)
6.2安装发行版(假设已安装proot-distro)
proot-distro install <alias>
此次我选择安装Ubuntu,执行如下命令:
proot-distro install ubuntu
我的执行结果如下:
[*] Installing Ubuntu (20.04)...
[*] Creating directory '/data/data/com.termux/files/usr/var/lib/proot-distro/installed-rootfs/ubuntu'...
[*] Creating directory '/data/data/com.termux/files/usr/var/lib/proot-distro/dlcache'...
[*] Downloading rootfs tarball...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- -100 639 100 639 0 0 867 0 --:--:-- --:--:-- --:--:-- 868
0 0 0 0 0 0 0 0 --:--:-- - 0 29.6M 0 0 0 0 0 0 --:--:-- 2 29.6M 2 736k 0 0 253k 0 0:01:59 29 29.6M 29 8864k 0 0 2270k 0 0:00:13 66 29.6M 66 19.8M 0 0 4134k 0 0:00:07 100 29.6M 100 29.6M 0 0 5238k 0 0:00:05 0:00:05 --:--:-- 6238k
[*] Checking integrity, please wait...
[*] Extracting rootfs, please wait...
[*] Writing '/data/data/com.termux/files/usr/var/lib/proot-distro/installed-rootfs/ubuntu/etc/profile.d/termux-proot.sh'...
[*] Writing resolv.conf file (NS 1.1.1.1/1.0.0.1)...
[*] Writing hosts file...
[*] Registering Android-specific UIDs and GIDs...
[*] Running distro-specific configuration steps...
gvfs-daemons set on hold.
udisks2 set on hold.
[*] Installation finished.
Now run 'proot-distro login ubuntu' to log in.
6.3运行linux,命令如下:
proot-distro login ubuntu
6.4启动方式优化
每次启动都要执行命令启动,着实有些难受,我们可以写一个启动脚本,这样我们之后需要启动时候执行脚本就行了。
vi ~/linux-start.sh
输入i ,进入编辑模式,将启动脚本复制进去,使用 :wq 命令保存并退出即可,脚本如下:
#!/bin/bash
echo "linux running...."
#这里放具体的启动命令即可
proot-distro login ubuntu
6.5给启动脚本设置可执行权限
chmod +x ~/linux-start.sh
6.6启动linux系统
执行命令:./linux-start.sh
7.配置JDK环境
注意:该操作必须是在linux系统中了,请先确认是否已经启动linux系统
7.1设置jdk环境
- 确认是否为root用户
- 设置jdk环境变量,命令如下:
vi /etc/profile
- 输入i 进入编辑模式
- 在文件末尾添加一下内容
#java的根目录,这里的值是在5.2的第6补中获取到的
export JAVA_HOME=/data/data/com.termux/files/home/jdk1.8.0_301
#默认值填 . 即可
export CLASS_PATH=.
#设置Java的path地址
export PATH=$PATH:$JAVA_HOME/bin
- 确认无误后,按下 Esc键,并输入 :wq 保存并退出
- 执行以下命令,重新加载配置文件
source /etc/profile
- 输入命令,确认java是否配置完成
java -version
如果输出一下内容则表示,java环境配置完成
二、其他配置
ps:此操作来自于国光个人博客:原文链接
1.安装oh-my-zsh
这个插件可以美化高级终端,帮助我们敲命令更方便,也会自动集成一些命令比如la、ll等等
1.1 使用oh-my-zsh官网的一键安装脚本
如果这种方式不行,可以使用第二种方式
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
1.2 使用termux-ohmyzsh的脚本
sh -c "$(curl -fsSL https://github.com/Cabbagec/termux-ohmyzsh/raw/master/install.sh)"
2.Termux系统备份与恢复
2.1备份
确保已经获取了存储访问的权限,如果没有获取的话,执行以下命令来重新获取访问权限:
termux-setup-storage
然后去 Termux 根目录下:
cd /data/data/com.termux/files
备份配置文件为 termux-backup.tar.gz:
tar -zcf /sdcard/termux-backup.tar.gz home usr
备份应该完成,没有任何错误。除非用户滥用 root 权限,否则不应有任何权限拒绝。
警告:不要将备份文件存储在 Termux 私有目录中,因为从设置中清除 Termux 数据后,这些目录也将被删除。
2.2 恢复
这里假设您已将 Termu 之前备份的 home 和 usr 目录备份到同一个备份文件中。请注意,在此过程中所有文件都将被覆盖现有的配置:
确保已经获取了存储访问的权限,如果没有获取的话,执行以下命令来重新获取访问权限:
termux-setup-storage
然后去 Termux 根目录下:
cd /data/data/com.termux/files
解压提取之前备份的内容,覆盖现存的文件并删除之前的备份文件:
tar -zxf /sdcard/termux-backup.tar.gz --recursive-unlink --preserve-permissions
操作完成重启 Termux 即可恢复数据。