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

Java传递系统属性时CMD正常PowerShell报Could not find or load main类错误

问题原因与解决方法

核心差异:CMD与PowerShell的续行符规则不同

你在CMD里用^作为换行续行符是正确的,但PowerShell中^是转义字符,不是续行符。当同事直接把CMD的命令放到PowerShell执行时:

  • 每行末尾的^会转义下一行开头的字符(比如空格或-),导致参数解析混乱
  • 原本的-Damp.server=mfpp被错误拆分,PowerShell把.server=mfpp当成了要执行的主类名,从而抛出Could not find or load main class错误

正确的PowerShell执行方式

有两种修正方法:

  1. 替换续行符:把所有^换成PowerShell的续行符(反引号,和键盘上的~同键位)
    java -Damp.server=mfpp `
        -Damp.setting2=value2 `
        -Damp.setting3=value3 `
        -jar target\MyProject-0.0.1-SNAPSHOT.jar
    
  2. 合并为单行命令:直接去掉所有续行符,写成一行执行
    java -Damp.server=mfpp -Damp.setting2=value2 -Damp.setting3=value3 -jar target\MyProject-0.0.1-SNAPSHOT.jar
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 11:54:54