Idea启动报错,Command line is too long异常
Idea启动报错,Command line is too long异常
Pei问题描述
在使用idea启动Springboot项目,报错Command line is too long,如下图
解决
按照如下修改,Edit Configurations->shorten command line->选择JAR manifest
三个选项的意思分别是
- none:这是默认选项。IDE不会缩短长类路径,如果命令行超出操作系统限制,则IDEA将无法运行您的应用程序
- JAR manifest:IDE通过临时classpath.jar传递长类路径,原始类路径在MANIFEST.MF中定义为classpath.jar中的类路径属性
- classpath file:IDE将把长类路径写入文本文件
按照上边修改后,只是在当前启动的类上做了配置(如上图,我的只是在App类生效),如果更换了启动类,可能还会报错,所以可以修改一下模板配置,之后启动Springboot类时默认使用如上配置。
Edit Configurations->Edit configuration templates
这样配置后,之后再启动其他类,也就不会再报错啦!
知其然,知其所以然
原因分析
出现此问题的直接原因是:IDEA集成开发环境运行你的源码的时候(注意是源码基础上运行,并非打好的jar包哦),是通过命令(首行那个非常非常长的)来启动Java进程的。
这个命令主要包含两大部分
- VM/程序参数:也就是你看到的那些-XX -D等参数,这部分理论上可以无限长但实际上一般不会太长。
- -classpath参数:它用于指定运行时jar包路径(因为jar包理论上是可以在任何地方的),这部分可能性就多了。
关键就在于-classpath参数,它可以非常长,你依赖的jar包越多此路径就越长;你的base基路径越长它就越长;倘若你还要做复杂的Junit单元测试,那加入的jar包就更多长度可能就越长喽。总的来说:此part是很有可能超长从而导致Command line is too long现象的。
如果类路径太长(可能性大),或者您有许多VM参数(可能性小),则无法启动该程序。原因是大多数操作系统都有命令行长度限制。在这种情况下,IntelliJ IDEA将提供尝试缩短类路径的能力。
参考资料
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果