在 .idea / workspace.xml 文件中,可以找到以下内容:
<component name="PropertiesComponent">
...
<property name="dynamic.classpath" value="false" />
</component>
dynamic.classpath标志的目的是什么?
将其设置为true恰好是IntelliJ错误的workaround。但我也很好奇它是否有任何副作用。
答案 0 :(得分:38)
此选项控制如何将类路径传递给JVM:通过命令行或通过文件。大多数操作系统都有最大的命令行限制,当超过时,IDEA将无法运行您的应用程序。
当命令行长于32768个字符时,IDEA建议您切换到动态类路径。将长类路径写入文件,然后由应用程序启动程序读取并通过系统类加载器加载。
如果您对实施细节感兴趣,可以查看IDEA社区版源代码,JdkUtil.java文件,setupJVMCommandLine
方法。
答案 1 :(得分:23)
IntelliJ 9.0.4的副作用是打开选项后,类路径不再完整。
在我的情况下,当我在特定包中运行所有单元测试时,在错误对话框中选择“是”后,该选项开始变为现实。错误消息显示“命令行太长。为了减少其长度,可以使用类路径文件。是否要为项目的所有运行配置启用类路径文件模式?” / EM>“
在此之后,一些测试失败了,因为来自其他模块的所需类在类路径中丢失了。
我找不到可以将其切换回来的对话框。我必须手动编辑 .iws 文件,并将 dynamic.classpath 选项切换回“ false ”。