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

如何通过Maven命令行运行支持STDIN的Java程序并解决依赖报错

两种方案均可快速解决,可根据你的实际使用场景选择:
如果后续项目需要在无Maven环境的设备上部署运行,优先修复第一种方式的类路径问题;如果仅为开发阶段本地调试使用,调整第二种方式的参数即可快速满足需求。

第一种方式问题修复

报错的核心原因是类路径配置与实际依赖存放路径不匹配:

  • 你执行mvn dependency:copy-dependencies后依赖存放在target/dependencies目录,但你java命令中类路径写的是相对路径dependency,路径不对导致JVM无法加载到对应的依赖类。
  • 修正后的运行命令如下(Linux/macOS环境):
    java -cp "target/Main-1.0-SNAPSHOT.jar:target/dependencies/*" com.company.main.Main
    
    如果你是Windows环境,需要把类路径中的冒号:替换为分号;。
  • 额外优化:可以在pom中配置maven-shade-plugin或者maven-assembly-plugin,将所有依赖和你的业务代码打包为单个可执行jar包,后续直接执行java -jar 打包后的文件名.jar即可运行,不需要手动配置类路径。

第二种方式STDIN支持方案

mvn exec:java默认不会透传STDIN输入,调整执行参数即可支持:

  • 把执行目标从exec:java改为exec:exec,同时指定执行的程序为java,完整命令如下:
    mvn exec:exec -Dexec.executable="java" -Dexec.args="-classpath %classpath com.company.main.Main" < input.txt
    
  • 该方式不需要修改项目配置,直接兼容STDIN重定向逻辑,适合本地开发调试使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:36:05