在Android系统中运行jar包可通过把jar转换为安卓系统可以执行的dex文件,从而运行java程序,但这种方法只不适用于复杂的框架,本篇讲述在Android设备中部署java环境并运行springboot项目。
为了运行更为复杂的java程序,可以在安卓设备中安装AidLux(国内软件)或Termux(国外软件),
AidLux是基于ARM架构的跨生态(Android/鸿蒙+Linux)一站式AIoT应用快速开发和部署平台APP。通过共享 Linux 内核实现Android 和 Linux 生态融合,为单一设备同时提供Android和Linux运行环境;集成国际主流AI框架和多种开发环境、后台服务程序、编译器及图形开发组件,无须配置开箱即用,极大地简化了开发步骤;自主研发的AI智能加速技术可实现CPU+GPU+NPU智能加速,大幅提高AI应用运行效率;平台广泛而深度的适配外设接口,省去大量调试工作;内置完整的跨平台桌面和命令行终端连接(SSH),一个平台完成多终端协同开发、测试、部署;可使用APK包安装方式快速部署在ARM架构的手机、平板、电脑和板卡等智能终端上。
Termux是一个Android终端仿真器和Linux环境应用程序,直接工作,无需根目录或设置。一个最小的基本系统被自动安装-额外的软件包可以使用APT软件包管理器来使用。不需要root,运行于内部存储(不在SD卡上)。
建议使用AidLux,AidLux本身就是一个Linux平台,而Termux需单独安装Linux系统,并且AidLux拥有可视化界面,可在PC端控制AidLux,较为方便。
AidLux在各大软件商店均可下载,Termux推荐在 F-Droid下载。
打开AidLux,初次打开等待一会进入后,出现Linux桌面。
打开Cloud_ip,可以看到在PC端访问的地址,手机和PC须在同一网络下。
PC端默认用户名为root,密码为aidlux。进入后可以访问文件管理器以及终端。
可以在AidLux的应用商店中安装默认的JDK,也可以自行安装指定版本的JDK,这里我们选择自行安装1.8版本的JDK,在JDK官网下载8的压缩包。
下载完成后通过AidLux的文件管理上传到usr/java(没有需自行创建文件夹)下
使用命令解压
tar zxvf jdk-8u351-linux-aarch64.tar.gz
控制台输入 vim /etc/profile ,在最后一行 输入
export JAVA_HOME=/usr/java/jdk1.8.0_351
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
按ESC退出编辑,:wq保存修改。
执行 source /etc/profile,输入java -version测试jdk是否配置成功
通过shell脚本完成这个事,先把jar包放到/root/java/MessageForwarding.jar这里,然后编辑一个简单的shell脚本(MessageForwarding.sh)
# !/bin/bash
# program
# test java open
export JAVA_HOME=/usr/java/jdk1.8.0_351
export JRE=/usr/java/jdk1.8.0_351/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE/lib:.
export PATH=$PATH:$JAVA_HOME/bin/:$JRE/bin
nohup java -jar /root/java/MessageForwarding.jar >/root/java/message.log &
可在AidLux应用商店中安装redis,也可以自行安装,步骤同Liunx安装redis。
输入redis-server即可启动redis。
可在AidLux应用商店中安装mysql,也可以自行安装,步骤同Liunx安装mysql。
安装完mysql后,使用
service mysql start
启动mysql。
终端输入mysql,进入mysql
use mysql;切换到mysql;
首先查看用户,以及plugin
select user, plugin from mysql.user;
查看root的plugin被修改成了auth_socket,用密码登陆的plugin应该是mysql_native_password。
关于auth_socket,在官方有说明: link ,反正现在暂时不用它, 那就把这里改了。
update mysql.user set authentication_string=PASSWORD('123456'), plugin='mysql_native_password' where user='root';
然后刷新权限:
flush privileges;
exit退出mysql,重启mysql;
service mysql restart
然后在终端使用ifconfig -a查看ip地址(在Cloud_ip界面也可以看到)
然后可以使用navicat 连接数据库进行相关操作
然后在手机浏览器中输入地址即可访问,此处无需联网,但必须保证AidLux在前台活动,可用悬浮窗将AidLux悬浮在前台(即使允许AidLux允许在后台运行也会导致运行的jar暂停,所以必须悬浮在前台)。
至此AidLux部署运行jar包已完成!
使用termux提供的jdk是要简单许多的,我们只需要引入2个命令即可
命令如下:
查询官方提供的JDK
pkg search jdk
这个命令会查找官方提供的jdk的版本
安装JDK
pkg install openjdk-17
具体的版本以步骤1查询到的版本为准
验证安装是否成功
java -version
如果输出jdk版本即为安装成功,不过该方式只能安装官方提供的版本,如果安装自己需要的某个版本的jdk,就需要使用以下方法了。
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
中间卡住的话按几次回车
如果没有root权限可以将tsu更换为 termux-chroot
pkg install zsh tsu wget curl vim git openssh -y
授予termux读取文件的权限
termux-setup-storage
执行成功后,会在home下生成一个 storage/ 目录,其中storage/shared/ 目录就是手机存储的根目录
[Ubuntu]E: Unable to locate package vim
apt-get update
Ubuntu 安装vim:
sudo apt-get install vim;//apt-get insatll vim
可以自行在Oracle官网下载自己需要的jdk版本,注意选择linux-aarch64的版本,
1.8版本的JDK,在JDK官网下载8的压缩包。
将安装包传输到termux中
将压缩包移动到手机存储根目录,即storage/shared/Download 目录
进入termux中,将jdk压缩包拷贝到termux的home目录下
命令如下:
cp download/jdk-8u351-linux-aarch64.tar.gz ~
解压jdk
tar -zxvf jdk-8u351-linux-aarch64.tar.gz
获取jdk的安装目录
命令如下:
cd ~/jdk1.8.0_351/ (进入解压出来的jdk目录中)
pwd (输出当前目录位置)
记下第4步获取到的文件目录
如:/data/data/com.termux/files/home/jdk1.8.0_351
先安装linux,暂不设置环境变量
安装proot-distro
pkg install proot-distro
目前,它支持以下发行版:
Alpine Linux(别名:alpine)-最小的可用发行版。
Arch Linux(别名:archlinux)
Debian 10 Buster(别名:debian-buster)
Kali Nethunter(别名:nethunter)-当前只有最小的构建。
Ubuntu(别名:ubuntu)
安装发行版(假设已安装proot-distro)
proot-distro install
建议安装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.
安装过程如果一直无结果,可以使用ctrl+C结束操作,重新安装
安装完成后运行linux,命令如下:
proot-distro login ubuntu
启动方式优化:
每次启动都要执行命令启动,可以写一个启动脚本,这样我们之后需要启动时候执行脚本就行了。
vi ~/linux-start.sh
输入i ,进入编辑模式,将启动脚本复制进去,使用 :wq 命令保存并退出即可,脚本如下:
#!/bin/bash
echo “linux running…”
#这里放具体的启动命令即可
proot-distro login ubuntu
1
2
3
4
5
6
按ESC退出编辑,输入:wq保存编辑
给启动脚本设置可执行权限
chmod +x ~/linux-start.sh
启动linux系统
执行命令:./linux-start.sh
注意:该操作必须是在linux系统中,请先确认是否已经启动linux系统
确认是否为root用户
设置jdk环境变量,命令如下:
vi /etc/profile
输入i 进入编辑模式
在文件末尾添加一下内容
#java的根目录,这里的值是在上边获取到的jdk的安装目录
export JAVA_HOME=/data/data/com.termux/files/home/jdk1.8.0_351
#默认值填 . 即可
export CLASS_PATH=.
#设置Java的path地址
export PATH=$PATH:$JAVA_HOME/bin
1
2
3
4
5
6
7
8
确认无误后,按下 Esc键,并输入 :wq 保存并退出
执行以下命令,重新加载配置文件
source /etc/profile
输入命令,确认java是否配置完成
java -version
如果输出一下jdk版本内容则表示,java环境配置完成
linux ubuntu 安装Mysql
sudo apt update; // apt update;
安装Mysql:
apt install mysql-server -y
mysql 启动失败:su: warning: cannot change directory to /nonexistent: No such file or directory
这种错误一般是 mysql 服务器异常关机导致的,解决方案如下:
# Ubuntu
sudo service mysql stop
sudo usermod -d /var/lib/mysql/ mysql
sudo service mysql start
# CentOS
sudo systemctl stop mysql.service
sudo usermod -d /var/lib/mysql/ mysql
sudo systemctl start mysql.service
reids是一个内存数据库,具有存取速度快,使用简单等优点。我们常常在分布式或者负载均衡的系统中使用它来缓存一些公用的且不是很大量的数据,比如session或者各类token(比如微信的access_token),本文介绍在ubuntu服务器上安装redis及一些常用的操作。
直接使用apt-get命令,键入如下命令。
apt-get install redis-server
一般安装完成以后,会自动启动redis,可通过如下三种方式
第一种:ps -aux|grep redis
第二种:netstat -nlt|grep 6379
第三种:ps -ef|grep redis
1 service reids-server start
2 service reids-server stop
3 service reids-server restart
4 service reids-server status
安装Redis服务器,会自动地一起安装Redis命令行客户端程序。
在本机输入redis-cli命令就可以启动,客户端程序访问Redis服务器。
然后就可以在这个客户端中做一些增删改查的操作了。
打开redis的配置文件,在/etc/redis/目录下的redis.conf文件
找到requirepass 字样,取消其注释,并在其后面填上你的密码。
#取消注释requirepass
requirepass yourpassword
找到bind 127.0.0.1字样,把它给注释掉
#bind 127.0.0.1
然后重启redis-server,就可以远程连接redis数据库了,并且需要输入密码。
就好像mysql有sqlyog这类的可视化操作工具一样,redis一样有,就是redis desktop manager
–下载地址: link
下载后安装即可。
–连接到redis-server
然后将jar包上传到Termux中,启动即可。