run-java.sh 项目使用教程
1. 项目目录结构及介绍
run-java.sh 项目是一个用于在容器中启动 Java 应用的通用脚本。项目的目录结构如下:
run-java-sh/
├── circleci/
├── fish-pepper/
│ └── run-java-sh/
│ └── fp-files/
├── src/
├── test/
│ ├── docker/
│ └── t/
├── .gitignore
├── LICENSE
├── README.md
├── TUNING.md
└── pom.xml
目录介绍
- circleci/: 包含 CircleCI 的配置文件,用于持续集成测试。
- fish-pepper/: 包含
run-java.sh的 Fish-Pepper 配置文件,用于在 Docker 构建过程中集成该脚本。 - src/: 包含项目的源代码。
- test/: 包含项目的测试代码和 Docker 测试环境的配置。
- .gitignore: Git 忽略文件配置。
- LICENSE: 项目许可证文件。
- README.md: 项目介绍和使用说明。
- TUNING.md: 关于 JVM 调优的说明文档。
- pom.xml: Maven 项目配置文件。
2. 项目启动文件介绍
run-java.sh 是项目的核心启动脚本,用于在容器中启动 Java 应用。该脚本支持多种环境变量配置,可以根据容器的资源限制自动调整 JVM 参数。
启动脚本功能
- 自动检测 JVM 版本: 根据环境变量
JAVA_MAJOR_VERSION自动选择合适的 JVM 参数。 - 内存限制: 根据容器的内存限制自动设置
-Xmx和-Xms参数。 - CPU 限制: 根据容器的 CPU 限制自动调整 JVM 的线程数和垃圾回收参数。
- 调试支持: 通过设置
JAVA_DEBUG环境变量启用远程调试。 - 自动检测 JAR 文件: 自动检测应用目录中的 JAR 文件并添加到 classpath。
使用示例
./run-java.sh run
3. 项目配置文件介绍
run-java.sh 的配置主要通过环境变量进行。以下是一些常用的环境变量及其说明:
环境变量
- JAVA_APP_DIR: 应用文件所在的目录,默认是脚本所在的目录。
- JAVA_LIB_DIR: 包含 Java JAR 文件的目录,默认与
JAVA_APP_DIR相同。 - JAVA_OPTIONS: 传递给 Java 进程的额外选项。
- JAVA_MAJOR_VERSION: JVM 的主版本号,用于选择合适的 JVM 参数。
- JAVA_MAX_MEM_RATIO: 设置 JVM 最大堆内存占容器内存的比例。
- JAVA_INIT_MEM_RATIO: 设置 JVM 初始堆内存占容器内存的比例。
- JAVA_MAX_CORE: 设置 JVM 使用的最大 CPU 核心数。
- JAVA_DIAGNOSTICS: 启用诊断信息输出。
- JAVA_MAIN_CLASS: 指定 Java 应用的主类。
- JAVA_APP_JAR: 指定应用的 JAR 文件。
- JAVA_CLASSPATH: 指定应用的 classpath。
- JAVA_DEBUG: 启用远程调试。
- JAVA_DEBUG_SUSPEND: 启用调试挂起模式。
- JAVA_DEBUG_PORT: 设置远程调试端口,默认是 5005。
配置示例
export JAVA_APP_DIR=/deployments
export JAVA_MAX_MEM_RATIO=40
./run-java.sh --user maxmorlock --password secret
通过这些环境变量,可以灵活地配置 run-java.sh 以适应不同的应用需求和容器环境。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



