• 解决 idea 运行问题:Command line is too long


    目录

    一、遇到的问题

    二、使用环境

    三、问题分析

    四、解决方案

    1、解决方式一

    2、解决方式二


    一、遇到的问题

    上周五,我要改造一个之前从未接触过的 SpringBoot 项目。我用 git 拉下代码后,试图使用 Idea 运行它。但是,Idea 在运行时抛出了一个问题:Error running 'Application': Command line is too long. Shorten command line for Application or also for Application default configuration?

    该问题一般会在新项目或者从未接触过的项目上出现。虽然网上有很多的解决方案,但很多解决方案都已经过时。并且这些方案也没有讲清问题的原因,所以我打算先用一个简单的 SpringBoot 项目模拟出该问题,再解决它,这样就很容易分析该问题。我觉得有必要写一篇文章记录这个过程,也可以帮助到遇到该问题的开发者。

    24511bd83466435591485d3a62c3ce71.png

    二、使用环境

    我使用的操作系统是 Windows, Idea 的版本是:IntelliJ IDEA 2020.3.1 (Community Edition)

    如果你遇到了该问题,先看一下你使用的 Idea 是多少版本的。2017.3 及以后的版本都可以使用该方法解决问题,如果你是 2017.3 之前的版本,我建议你升级 Idea ,尽量使用新版本的 Idea 。

    31cc4dbcb9d84090897f9f33ac1a6d22.png

    三、问题分析

    我先问一个问题,在 Idea 中点击运行按钮后,Idea 会调用哪些命令?

    当我们点击运行程序的按钮,Idea 会先调用 javac 命令编译程序,再调用 java 命令运行程序。

    现在,分析一下错误:Error running 'Application': Command line is too long 。这个错误说的很明确,运行程序时报错,命令行太长了,而运行程序的命令就是上面说的 java 命令。最后的结论是,运行 java 的命令行太长。一般来说,操作系统有命令行长度限制,超过限制的长度就会执行失败。

    下面来证明我的结论,在 Idea 中运行程序,控制台中打印的第一行日志如下图中红框所示:

    99c207fe856148cca0e35d37a083d8ac.png

    c3ace0edaf9949af92f59d3f6a740d73.png

    该行日志就是使用 java 命令运行程序,点开后可以看到后面跟有 -javaagent、classpath 等参数。如果 classpath 中包含的 jar 包过多,可能导致命令行过长。

    四、解决方案

    既然知道了是 java 命令行太长,导致运行程序失败。只要缩短命令行就可以解决该问题,Idea 2017.3 之后的版本提供了缩短命令行的配置。如下有两种解决方式,方式一和方式二的原理一样,都是配置缩短命令行。方式一和方式二的区别在于方式一是按步骤配置,方式二是快速配置。

    1、解决方式一

    先打开 Run/Debug Configurations 面板。再点击 Modify options ,选择 Shorten command line ,再选择 JAR manifest 或者 classpath file 就可以解决问题。

    示意图如下所示:

    216a686158654ad3a2686893f1745cd0.png

    cf5940edee494b9cb9af6240fda85eba.png

    eed2c76870ac4b34bdf4fa237ab3e446.png

    2、解决方式二

    如果你的 Idea 弹出报错信息如下图所示,直接点击蓝色的 JAR manifest 或者 classpath file 可以快速配置,再次运行程序就不会再报错了。

    c48e91c839154d8a974ebe4bb9ccdc6e.png

  • 相关阅读:
    mysql简单介绍2.0
    Ubuntu搭建团队文档协作在线平台
    Linux NetworkManager 的使用方法(nmcli和nmtui)
    新闻资讯|基于微信小程序的经济新闻资讯系统设计与实现(源码+数据库+文档)
    【QT项目——视频播放器——解码】5.1decoder-5.10音频重采样
    为什么信息图会帮助你的SEO
    k8s容器集群管理
    使用ChatGPT高效完成简历制作[中篇]-有爱AI实战教程(五)
    MySQL查询表结构方法
    Python技能树——进阶语法讲解(3)
  • 原文地址:https://blog.csdn.net/keyboard_/article/details/127722234