编译脚本修复路径配置问题,添加NFC等需要的基础类。

This commit is contained in:
2026-01-15 17:54:41 +08:00
parent d932e66dae
commit 9040dc1501
28 changed files with 368 additions and 132 deletions

View File

@@ -1,40 +1,61 @@
#!/bin/bash
# 编译目录配置已修正源文件目录为实际的src
BASE_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
SRC_DIR="$BASE_DIR/src" # java源文件目录
OUT_DIR="$BASE_DIR/runtime" # class输出目录已改回runtime
LIB_DIR="$BASE_DIR/libs" # 依赖包目录
# AuthCenter 编译脚本Termux专属适配
# 目录脚本放AuthCenterConsoleApp根目录同目录含src/、libs/、runtime/
# 解决Termux下jar包classpath拼接报错问题
# 1. 递归查找所有.java源文件
JAVA_FILES=$(find "$SRC_DIR" -name "*.java")
if [ -z "$JAVA_FILES" ]; then
echo "错误:在 $SRC_DIR 目录下未找到任何.java文件"
# 锚定AuthCenterConsoleApp根目录脚本所在目录
BASE_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
SRC_DIR="${BASE_DIR}/src"
LIB_DIR="${BASE_DIR}/libs"
OUT_DIR="${BASE_DIR}/runtime"
# 前置校验必须有src目录
if [ ! -d "${SRC_DIR}" ]; then
echo "❌ 错误:根目录[${BASE_DIR}]下无src目录请核对结构"
exit 1
fi
# 2. 处理依赖包拼接classpath参数
# 查找所有Java源文件
JAVA_FILES=$(find "${SRC_DIR}" -name "*.java")
if [ -z "${JAVA_FILES}" ]; then
echo "❌ 错误src目录下无.java文件"
exit 1
fi
# 核心修正Termux兼容的classpath拼接用循环拼接避免空格/路径解析问题)
CP_PARAM=""
if [ -d "$LIB_DIR" ]; then
# 匹配libs下所有jar包适配Linux/macOS多个jar用冒号分隔
JAR_FILES=$(ls "$LIB_DIR"/*.jar 2>/dev/null)
if [ -n "$JAR_FILES" ]; then
CP_PARAM="-cp $(echo $JAR_FILES | tr ' ' ':')"
if [ -d "${LIB_DIR}" ]; then
JAR_LIST=("${LIB_DIR}"/*.jar)
# 排除目录本身无jar时不拼接
if [ -f "${JAR_LIST[0]}" ]; then
CP=$(IFS=:; echo "${JAR_LIST[*]}")
CP_PARAM="-cp ${CP}"
else
echo " 提示libs目录无jar包无依赖编译"
fi
else
echo "警告:依赖目录 $LIB_DIR 不存在,将不加载外部依赖"
echo " 提示无libs目录无依赖编译"
fi
# 3. 确保输出目录存在
mkdir -p "$OUT_DIR"
# 创建输出目录
mkdir -p "${OUT_DIR}"
# 4. 执行编译(带依赖路径)
echo "开始编译Java文件源目录$SRC_DIR,输出目录:$OUT_DIR"
javac $CP_PARAM -d "$OUT_DIR" $JAVA_FILES
# 打印目录信息
echo "📌 编译目录信息"
echo " 根目录 ${BASE_DIR}"
echo " 源码目录:${SRC_DIR}$(echo "${JAVA_FILES}" | wc -l | tr -d ' ')个文件)"
echo " 输出目录:${OUT_DIR}"
echo "------------------------------------------------------------------------"
# 5. 结果校验
# 执行编译Java7标准+UTF-8适配Termux
echo "开始编译适配Termux+Java7..."
javac -encoding UTF-8 -source 1.7 -target 1.7 ${CP_PARAM} -d "${OUT_DIR}" ${JAVA_FILES}
# 结果校验
if [ $? -eq 0 ]; then
echo "编译成功class文件已按包结构生成至 $OUT_DIR"
echo -e "\n✅ 编译成功class文件在 runtime 目录"
else
echo "编译失败请检查Java源文件语法或依赖包是否完整"
echo -e "\n❌ 编译失败排查方向1.JDK≥1.7 2.源码语法 3.jar包是否有效"
exit 1
fi