IntelliJ运行Maven项目报错‘Command line is too long’及代码更新不生效求助
解决IntelliJ 2018.1.1中Maven项目的「Command line is too long」及JAR Manifest不更新问题
我来帮你搞定这两个关联的问题,给你两种思路,按需选择:
一、换个方式解决「Command line is too long」(避免JAR Manifest的更新问题)
其实不用切换到JAR Manifest也能解决命令行过长的问题,而且能彻底避开后续的代码不更新麻烦:
- 打开你的Run/Debug Configurations,找到对应main类的运行配置
- 切换到「Configuration」标签页,找到「Shorten command line」下拉选项
- 选择「Classpath file」(对Java 8及以下版本也兼容)或者「@argfile (Java 9+)」
- 点击「Apply」保存配置,再重新运行项目。这样既解决了命令行过长的问题,IntelliJ也会实时编译你的代码修改,完全不会依赖预生成的JAR
二、如果坚持用JAR Manifest,修复代码不更新的问题
要是你更倾向用JAR Manifest的方式,那可以通过以下步骤让IntelliJ识别代码修改:
- 确保Maven自动同步:打开IntelliJ右侧的Maven工具窗口,勾选「Auto-Import」,这样代码和依赖的变更会被及时追踪
- 调整运行配置的前置步骤:
- 打开Run/Debug Configurations,找到你的配置
- 切换到「Before launch」标签页
- 确保添加了「Build」步骤,并且把它放在所有构建 artifact 的步骤之前(如果有的话)
- 如果之前有手动生成JAR的步骤,改成先编译再生成JAR,或者直接移除,让IntelliJ每次运行前重新编译并生成新的Manifest JAR
- 清理构建缓存:
- 点击顶部菜单栏的「File」→「Invalidate Caches / Restart」
- 选择「Invalidate and Restart」,清空旧的编译缓存和JAR文件,重启后IntelliJ会重新构建项目
- 检查编译输出目录:
- 打开「File」→「Project Structure」→「Modules」→「Paths」
- 确认「Output path」和「Test output path」是正确的项目编译目录,且没有被设置为只读或被其他进程占用
- 手动触发全量构建:每次修改代码后,点击「Build」→「Rebuild Project」,再运行main方法,确保新代码被编译并更新到Manifest JAR里
内容的提问来源于stack exchange,提问作者zooes
相关产品推荐
相关产品推荐

