Files
AuthCenterConsoleApp/bash/build_class.sh

62 lines
1.9 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# AuthCenter 编译脚本Termux专属适配
# 目录脚本放AuthCenterConsoleApp根目录同目录含src/、libs/、runtime/
# 解决Termux下jar包classpath拼接报错问题
# 锚定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
# 查找所有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
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 " 提示无libs目录无依赖编译"
fi
# 创建输出目录
mkdir -p "${OUT_DIR}"
# 打印目录信息
echo "📌 编译目录信息"
echo " 根目录 ${BASE_DIR}"
echo " 源码目录:${SRC_DIR}$(echo "${JAVA_FILES}" | wc -l | tr -d ' ')个文件)"
echo " 输出目录:${OUT_DIR}"
echo "------------------------------------------------------------------------"
# 执行编译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 -e "\n✅ 编译成功class文件在 runtime 目录"
else
echo -e "\n❌ 编译失败排查方向1.JDK≥1.7 2.源码语法 3.jar包是否有效"
exit 1
fi