IDEA报错:Command line is too long Shorten command line for xxx or also for JUnit default configuration

Posted 人生大事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA报错:Command line is too long Shorten command line for xxx or also for JUnit default configuration相关的知识,希望对你有一定的参考价值。

目录

原因分析

出现此问题的直接原因是:IDEA集成开发环境运行项目源码的时候,是通过命令(首行那个非常非常长的)来启动Java进程的。这个命令主要包含两大部分:
vm/程序参数。也就是你看到的那些-XX -D等参数,这部分理论上可以无限长但实际上一般不会太长
-classpath参数,它用于指定运行时jar包路径(因为jar包理论上是可以在任何地方的),这部分可能性就多了
关键就在于-classpath参数,它可以非常长,你依赖的jar包越多此路径就越长;你的base基路径越长它就越长;倘若你还要做复杂的Junit单元测试,那加入的jar包就更多长度可能就越长喽。总的来说:此part是很有可能超长从而导致Command line is too long现象的。
如果类路径太长(可能性大),或者您有许多VM参数(可能性小),则无法启动该程序。原因是大多数操作系统都有命令行长度限制。在这种情况下,IDEA将提供尝试缩短类路径的能力。


解决办法

1. 方案一:修改IDEA

位置导航:小锤子旁边,下拉:Edit Configurations->configuration->shorten command line
从对话框中选择(我的不生效,有的同事可以,没仔细研究)

2. 方案二:修改.idea/workspace.xml

  1. 找到idea的项目空间下的 .idea/workspace.xml
  2. 编辑器打开并找到如下
    <component name="PropertiesComponent">
    	...
    </componet>
    
  3. 在其中加入
    <property name="dynamic.classpath" value="true"/>
    
  4. 保存并重启idea
  5. 有可能不生效,再次修改重启

idea报错Error running $classname: Command line is too long. Shorten command line for $classname.

之所以出现这个原因是一般是因为打印的环境变量太长了,超过了限制,可以尝试以下方案:

1.按照提示修改该类的配置,选择jar manifest(每个报错的类都需要注意设置,项目的.idea/workspace.xml有这个选项,可以修改默认值,这样就不用每次更改) 

技术分享图片

2.在项目的.idea/workspace.xml文件中,找到 <component name="PropertiesComponent">,添加一行<property name="dynamic.classpath" value="true" />

 技术分享图片

3. 若还是没有解决,

技术分享图片

 

以上是关于IDEA报错:Command line is too long Shorten command line for xxx or also for JUnit default configuration的主要内容,如果未能解决你的问题,请参考以下文章

idea报错Error running $classname: Command line is too long. Shorten command line for $classname.

idea解决Command line is too long. Shorten command line for ServiceStarter or also for Application报错

idea报错:Error running $classname: Command line is too long. Shorten command line for $classname.(示例代码

Intellij IDEA运行报错Command line is too long的处理解决方法

解决: Intellij IDEA 运行报错 Command line is too long

Idea运行报错Error running ‘Application‘: Command line is too long的解决方法