You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Shell启动Java应用时将cron表达式配置到JVM参数中

正确配置方法

1. 首选启动命令(适配Linux/macOS环境)

nohup java -Xmx1024m -Dabc=abc -Dcron='0 0 2 * * ?' -cp xxx.jar:yyy.jar 你的主类全限定名 2>&1 &

2. Windows cmd环境启动命令

java -Xmx1024m -Dabc=abc -Dcron="0 0 2 * * ?" -cp xxx.jar;yyy.jar 你的主类全限定名

关键修正说明

  • 解决参数拆分与通配符展开问题:Linux/macOS环境下使用单引号包裹完整的-Dcron=0 0 2 * * ?参数,Shell会保留单引号内的所有字符字面量,不会拆分内部空格,也不会将*解析为通配符匹配当前目录文件名,会完整将参数传递给JVM。如果偏好使用双引号,需确保没有外层引号嵌套导致当前双引号被提前闭合,也可以直接将表达式赋值给变量后用双引号包裹变量引用:
    CRON="0 0 2 * * ?"
    nohup java -Xmx1024m -Dabc=abc -Dcron="$CRON" -cp xxx.jar:yyy.jar 主类全限定名 2>&1 &
    
  • 修正类路径分隔符错误:Linux/macOS下多个jar包的类路径分隔符为冒号:,你原命令中使用的分号;是Shell的命令分隔符,会导致后续的yyy.jar被识别为独立命令执行,仅Windows cmd环境下类路径使用分号作为分隔符。
  • 补充必填配置:原命令缺少主类全限定名,如果你使用可执行jar包启动,可以将-cp xxx.jar:yyy.jar 主类全限定名替换为-jar xxx.jar(要求jar包的MANIFEST.MF文件中已配置主类路径)。
  • 修正重定向写法:标准错误合并到标准输出的正确语法为2>&1,末尾加&可将进程放到后台运行。

内容的提问来源于stack exchange,提问作者eceby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 16:27:03