已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > 移动开发 > 安卓

标题: 修复安卓12打不开java,在64位Termux中安装32位java

作者: @Ta

时间: 2022-02-03发布,2022-02-03修改

点击: 5464

背景

由于谷歌的限制,Termux提供的64位java目前无法在安卓12中正常运行(详情)。

虽然可以改用32位Termux来解决问题,但是需要卸载重装,原先所有的Termux数据都会丢失。如果你不想重装,我会尝试提供直接在64位Termux中安装32位java的方法。

你也可以关注这个github issue来了解Termux在安卓12 java问题上的最新进展:

https://github.com/termux/termux-packages/issues/7332

https://hu60.cn/q.php/bbs.topic.102524.6.html?floor=118#118

步骤


[隐藏样式|查看源码]


『回复列表(11|隐藏机器人聊天)』

1.

步骤1:在dpkg开启32位arm架构

# 查看当前软件包架构
dpkg --print-architecture

# 添加32位arm架构
dpkg --add-architecture arm

# 显示添加的架构
dpkg --print-foreign-architectures

# 更新软件包列表
apt update

IMG_20220203_152139.jpg

(/@Ta/2022-02-03 15:23//)

2.

步骤2:尝试直接安装32位java,肯定会失败。所以我们只能采取其他方法。

apt install openjdk-17:arm

IMG_20220203_152424.jpg

(/@Ta/2022-02-03 15:24//)

3. @老虎会游泳@老虎会游泳,老虎的源码,应该直接大众化安装,小白化安装。

就像wordperss把源码放在目录。然后访问首页点击安装。

太复杂了,环境要求也高。小白,只呼不知道咋安装?
(/@Ta/2022-02-03 15:38//)

4.

步骤3:下载并解压32位openjdk-17及其所有依赖。

# 创建并进入deb文件夹
mkdir ~/deb
cd ~/deb

# 下载`openjdk-17:arm`
apt download openjdk-17:arm

# 下载`openjdk-17:arm`的所有依赖
LANG=en LANGUAGE=en apt-cache depends --recurse openjdk-17:arm | grep -E '(Depends|PreDepends|Recommends|Suggests):' | awk '{print $2}' | grep -v '<' | xargs apt download
# 创建并进入termux32文件夹
mkdir ~/../termux32
cd ~/../termux32

# 解压下好的deb
find ~/deb/ -type f | while read f; do dpkg -X "$f" ~/../termux32; done
(/@Ta/2022-02-03 16:11//)

5.

步骤4:尝试运行32位java

# 设置一个PREFIX32环境变量
PREFIX32="$(realpath ~/../termux32/data/data/com.termux/files/usr)"

# 为深层目录创建一个符号连接
ln -s "$PREFIX32" ~/../usr32
# 为32位程序创建一个包装器

PREFIX32="$(realpath ~/../usr32)"

cat >"$PREFIX/bin/bin32_wrapper" <<EOF
#!$PREFIX/bin/sh

bin="\$(basename "\$0")"

export PREFIX="$PREFIX32"
export JAVA_HOME="\$PREFIX/opt/openjdk"
export PATH="\$PREFIX/bin:\$JAVA_HOME/bin"
export LD_LIBRARY_PATH="\$PREFIX/lib:\$JAVA_HOME/lib"

exec "\$PREFIX/bin/\$bin" "\$@"
EOF

# 给执行权限
chmod +x "$PREFIX/bin/bin32_wrapper"
# 为32位java创建包装器链接
cd "$PREFIX/bin"
ls ~/../usr32/opt/openjdk/bin | while read f; do echo "$f"; ln -s bin32_wrapper "$f"; done

然后就能用了

# 创建一个测试java文件
mkdir ~/java
cd ~/java

cat >./HelloWorld.java <<EOF
public class HelloWorld {
    public static void main(String args[]) {
        System.out.println("Hello World!");
    }
}
EOF

# 编译它
javac HelloWorld.java

# 运行它
java HelloWorld

Screenshot_2022-02-03-17-47-57-205_com.termux.jpg

(/@Ta/2022-02-03 17:48//)

6.

@apkdy死神,虎绿林程序是为hu60.cn设计的网站程序,目前我并没有计划让它成为大家都能安装的程序。如果你不是为了学习编程、PHP、Linux技术或网站运维技术,可能不适合安装虎绿林程序。

(/@Ta/2022-02-03 16:40//)

7.

@apkdy死神,我之所以编写这篇教程,是因为@希望自己长胖胖他想学习PHP

如果对于学习编程、网站运维和Linux技术没有兴趣,那么使用虎绿林网站程序最好的方法是直接打开hu60.cn,而不是自己架设一个。

如果有兴趣,那么尝试自己安装虎绿林程序,就是学习这些的良好开始。

(/@Ta/2022-02-03 16:30//)

8.

@apkdy死神,最重要的问题在于,我本人对“把虎绿林程序开放给不了解PHP和Linux的公众”这件事情不感兴趣。

如果有人能帮我完成这件事情,我当然欢迎。但是如果没有人来做,我自己可能不会做。

(/@Ta/2022-02-03 16:32//)

9. @希望自己长胖胖,学啥php  go
语言不香吗,java不香吗
(/@Ta/2022-02-03 20:30//)

10. @deed
我喜欢php吖 ,可以在网页上直接开发软件和游戏呢,感觉是超级强大的哦, 而且是开源的,感觉未来无限可期……
(/@Ta/2022-02-04 07:01//)

11. @希望自己长胖胖java也开源啊
(/@Ta/2022-02-07 00:22//)

回复需要登录

6月29日 08:24 星期天

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1