feat: 新增 java run,按 JDK 版本自动套用调优参数运行 Java 应用

- 自动识别 JDK 8/11/17/21 与宿主机 CPU、可用内存;容器内以 cgroup
  限额为准;堆默认取可用内存 50%,-Xms 与 -Xmx 同值
- 按版本分支生成参数:JDK 8 用 -Xloggc 一组,JDK 9+ 用 -Xlog:;
  堆超过 30g 时自动省略压缩指针参数
- 支持 --jdk/--java/--heap/--xms/--env/--gc-log/--heap-dump-on-oom/
  --print-flags/--dry-run;jar 之后的参数原样交给应用
- 前台运行:stdio 直连、退出码透传、SIGINT/SIGTERM 转发给 JVM
- BuiltinRequest 增加 Stdin,使内置命令可以读取调用方输入
- 修正帮助中的用法行重复(自定义 Usage 不再追加通用透传尾巴)
- 文档:新增 README.java.md,主 README 补充导航与示例
This commit is contained in:
2026-11-01 09:16:19 +08:00
parent 14817bcfe7
commit f62c1f4872
16 changed files with 2139 additions and 7 deletions
+29
View File
@@ -452,6 +452,35 @@ func Builtin() *Registry {
},
},
},
{
ID: "java.run",
Group: "java",
Summary: "按 JDK 版本套用调优参数并前台运行 Java 应用",
Action: "以 kopsc 内置的业界常用调优参数启动 Spring 风格应用:自动识别宿主机的 CPU 与可用内存" +
"(容器内以 cgroup 限额为准),堆大小默认取可用内存的 50%;按检测到的 JDK 版本套用对应参数," +
"JDK 8 使用 -Xloggc 组,JDK 9+ 使用 -Xlog: 组;应用参数写在 jar 之后,或用 -- 分隔。" +
"前台运行,Ctrl+C 可停止,退出码透传",
Usage: "<app.jar> [-- 应用参数...]",
MinArgs: 1,
ConfirmBuiltin: "java.run.preview",
Variants: []Variant{
{
Match: Match{OS: "linux"},
Builtin: "java.run",
Note: "Linux 内置实现(/proc 与 cgroup 探测资源)",
},
{
Match: Match{OS: "darwin"},
Builtin: "java.run",
Note: "macOS 内置实现(sysctl 探测内存)",
},
{
Match: Match{OS: "windows"},
Builtin: "java.run",
Note: "Windows 内置实现(wmic 探测内存)",
},
},
},
{
ID: "pkg.refreshindex",
Group: "pkg",