当我运行测试时,我得到错误“命令行太长”。 如果我在运行/调试配置中将“缩短命令行”方法设置为特定方法或类的“JAR清单”,它就可以工作,但我如何为整个项目设置它,或者有IDE全局设置吗?


当前回答

添加<property name="dynamic. "<component name="PropertiesComponent">标签下的。idea/workspace.xml文件。这对我很管用。

其他回答

在。idea文件夹中,更改workspace.xml文件

Add

<property name="dynamic.classpath" value="true" />

to

  <component name="PropertiesComponent">
.
.
.
  </component>

例子

 <component name="PropertiesComponent">
    <property name="project.structure.last.edited" value="Project" />
    <property name="project.structure.proportion" value="0.0" />
    <property name="project.structure.side.proportion" value="0.0" />
    <property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
    <property name="dynamic.classpath" value="true" />
  </component>

如果您没有看到,请自行添加

 <component name="PropertiesComponent">
    <property name="dynamic.classpath" value="true" />
  </component>

社区编辑:这个解决方案似乎在新版本的IDE中不起作用,PropertiesComponent的格式现在不同了。如果这是你的情况,那么这个答案应该有用

如果您使用JDK版本从9+,您应该选择

执行>编辑配置…>选择JUnit模板。

然后,选择如下图所示的@argfile (Java 9+)。

如果您没有看到“缩短”命令行,那么只需单击如下所示的“修改选项”菜单,然后选择“缩短”命令行

请试试。朋友们,祝你们好运。

感谢Rajesh Goel在Android Studio的贡献:

执行>编辑配置…

选择一个测试(最好选择一个父测试类),并将Shorten命令行:选项设置为类路径文件。然后OK(或Apply, OK)。

坚持:

打开Intellj ctrl + shift + n 类型workspace.xml 查找组件名称="PropertiesComponent"标签 A)如果有属性列表,添加

<属性名= "动态。类路径" value="true" />

b)如果有keyToString json,在map中添加新行:

“dynamic.classpath&quot:“true&quot; (记住上面一行的逗号)

(可选)如果你想在另一个项目中也启用这个配置,重启intellj

在我的例子中,错误是:

Error running 'MasterFileGenerator':
Command line is too long. Shorten command line for StagingFileGenerator or also for Application default configuration.

解决方案是切换到“运行/调试配置”,并从用户本地默认:none - java [options] className [args]切换到JAR manifest - java -cp classpath.jar className [args]。