Java | 解决Error running XXXApplication.Command line is too long.

2,475 阅读2分钟

现象

今天拉完代码启动项目的时候,IDEA左下角突然弹了这个错误,项目启动不起来了:

Error running AisinoApplication.Command line is too long.Shorten the command line via JAR manifest or via a classpath file and return.

原因

这个错误信息表明你在运行 启动程序 时,命令行参数过长,超出了操作系统的限制。通常,这种情况发生在 Java 应用程序中,尤其是当你有很多依赖项或参数时。

命令行参数过长通常是由于操作系统对命令行长度的限制引起的。不同的操作系统对命令行长度的限制不同。

1. 操作系统限制

  • Windows:在 Windows 系统中,命令行的最大长度通常为 8191 个字符(包括命令和参数)。如果你尝试运行的命令超过这个长度,就会出现“命令行太长”的错误。
  • Linux/Unix:在 Linux 和 Unix 系统中,命令行长度的限制通常更高,但仍然存在限制,通常在 128 KB 左右。

2. 大量依赖项

  • 如果你的 Java 应用程序依赖于许多 JAR 文件,且在运行时需要将这些 JAR 文件的路径全部列出,那么命令行的长度就会迅速增加。

3. 长参数列表

  • 如果你在运行应用程序时传递了很多参数(例如配置文件路径、环境变量等),这些参数也会增加命令行的长度。

4. 环境变量

  • 在某些情况下,环境变量的设置也可能影响命令行的长度,尤其是在使用 CLASSPATH 环境变量时。

5. 构建工具的影响

  • 使用 Maven、Gradle 等构建工具时,生成的命令行可能会非常长,尤其是在包含多个依赖项时。

解决方案

推荐使用方案二。

方案一

选择Edit Configurations

image.png

点击Modify options

image.png

勾选Shorten command line

image.png

选择classpath file,然后点击Apply

image.png

最后重启项目。

方案二

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

这种解决方案一次设置就行,不必再为项目中每个模块的启动配置项中单独设置