IDEA版本为:IntelliJ IDEA 2018.2 (Ultimate Edition)
一、问题描述
有时当我们使用IDEA,Run/Debug一个SpringBoot项目时,可能会启动失败,并提示以下错误。Error running 'XXXApplication': Command line is too long. Shorten command line for XXXApplication or also for Spring Boot default configuration.意思是错误运行某程序:命令行太长。为某程序或为Spring Boot默认配置缩短命令行。如下图:
![](https://img-blog.csdnimg.cn/img_convert/8ff682ea9f5a4ff8b32eed4dfeda8b4b.png)
出现这种报错的原因是类路径太长或者VM参数太多以致超过了操作系统命令行长度限制。
二、解决方法
我们可以通过选择Run/Debug Configurations下的Shorten command line,缩短命令行的方式解决这个问题。
![](https://img-blog.csdnimg.cn/img_convert/55b5156610f14a489fa0e9912ef0dbfa.png)
如上图,IDEA有四种缩短命令的方式:
User-local default:对于IntelliJ IDEA 2017.3之前版本创建的项目,此遗留选项将自动设置。IntelliJ IDEA将根据ide/workspace.xml和idea .config.path/options/options.xml文件中设置的属性配置此设置。
none:IntelliJ IDEA不会缩短长的类路径。如果命令行超出操作系统限制,IntelliJ IDEA将无法运行应用程序,并将显示一条消息,建议您指定缩短方法。
JAR manifest:IntelliJ IDEA将通过临时classpath. jar传递一个长的类路径。原始类路径在清单文件中定义为classpath.jar中的类路径属性。请注意,如果使用此方法缩短了命令行,那么您将能够预览完整的命令行,而不仅仅是临时classpath.jar的类路径。
classpath. file:IntelliJ IDEA将把一个长类路径写入一个文本文件。
选择JAR manifest和classpath. file方式都可以。
使用JAR manifest方式可以看到,类路径只有一个临时创建的jar,我们可以点击蓝色部分看到完整的类路径命令行。
![](https://img-blog.csdnimg.cn/img_convert/9e6d102d81e44dabbaa90023efbf69b9.png)
本质是IDEA在下面目录下创建一个临时的jar。该jar中只有一个MANIFEST.MF文件,其中的Class_Path的属性值就是完整的类路径。
![](https://img-blog.csdnimg.cn/img_convert/77c1c0ebbcb04241bfbcb5a308ced5de.png)
![](https://img-blog.csdnimg.cn/img_convert/a44e6f4d32484839973a783676ed3f93.png)
![](https://img-blog.csdnimg.cn/img_convert/7460f2f56be34d149286c57813448f0e.png)
使用classpath.file方式可以看到如下。
![](https://img-blog.csdnimg.cn/img_convert/6d18a36df60f4580b63845088dc19699.png)