本文最后更新于 2024-07-06,文章内容可能已经过时。

问题起因是因为自己的N1可能需要执行一些Java程序,就不放到服务器中运行,但是Oracle官网下载的JDK无法运行

参考连接

1. 确定需要安装的文件

文件下载地址:https://dl-cdn.alpinelinux.org/alpine/latest-stable/community/

首先需要确定自己安装OpenWrt的设备的处理器信息,因为N1是aarch64的,所以需要进入对应的目录。

image-20221217183005164

可以看到主流版本的JDK都有,我还是安装JDK8就可以了,版本号是8.345.01-r3

修改脚本如下(/mnt/sda1/soft是我JDK最终的存放路径):

#!/bin/sh

set -o errexit
set -o nounset
set -o pipefail
set -x

REVISION=8.345.01-r3
URL=https://dl-cdn.alpinelinux.org/alpine/latest-stable/community/aarch64/
PACKAGES="openjdk8 openjdk8-jre openjdk8-jre-lib openjdk8-jre-base"

old_pwd=$(pwd)
tmp_dir=$(mktemp -d -t openjdk8-XXXXXXXXXX)
trap "rm -rf $tmp_dir" EXIT

cd "${tmp_dir}"

for package in $PACKAGES; do
    curl -LO "${URL}/${package}-${REVISION}.apk"
done

for package in $PACKAGES; do
    tar xzf "${package}-${REVISION}.apk"
done


cd "${old_pwd}"

mv $tmp_dir/usr/lib/jvm/java-1.8-openjdk /mnt/sda1/soft

2. 安装JDK

直接执行命令跑一下SHELL脚本就可以了。

chmod +x installJDK.sh
./installJDK.sh

等待文件下载解压后就可,然后需要配置环境变量了。

众所周知正常Linux直接把环境变量配置到/etc/profile就可以了,但是我这里遇到一个坑,刷新后JDK可以试用了,但是其他命令全部失效,于是读了一下文件,发现了一点端倪。

image-20221217184007634

最终刷新一下source /etc/profile完成配置。

image-20221217184126720

其余命令和Java都正常了。

3. 其余的问题

JDK安装后还发现了一点其他的问题,执行程序的时候会报错。

image-20221217181812256

根据关键词看看有没有libnss安装一下。

opkg list | grep libnss
opkg install libnss

image-20221217181933121

最终全部正常!