dynamic.classpath标志是做什么的? (IntelliJ项目设置)
在文件.idea / workspace.xml中可以find以下内容:
<component name="PropertiesComponent"> ... <property name="dynamic.classpath" value="false" /> </component>
dynamic.classpath标志的目的是什么?
将它设置为true恰好是IntelliJ错误的解决方法 。 但是我也很好奇,如果它有任何副作用。
该选项控制如何将classpath传递给JVM:通过命令行或通过文件。 大多数操作系统都有最大的命令行限制,当它超过时,IDEA将无法运行你的应用程序。
当命令行超过32768个字符时,IDEAbuild议您切换到dynamic类path。 长类path被写入文件,然后由应用程序启动器读取并通过系统类加载器加载。
如果您对实现细节感兴趣,可以查看IDEA社区版源代码, JdkUtil.java文件, setupJVMCommandLine
方法。
IntelliJ 9.0.4的一个副作用是打开选项后,类path不再完整。
在我的情况下,当我在一个特定的包中运行所有unit testing时,在错误对话框中select“ 是 ”后,该选项就被打开了。 错误消息显示为“ 命令行太长,为了减less文件的长度,可以使用类path文件。是否要为项目的所有运行configuration启用类path文件模式 ?
在这之后,一些testing失败了,因为其他模块中所需的类比classpath中缺less。
我发现没有对话,我可以切换回来。 我不得不手动编辑.iws文件,并将dynamic.classpath选项切换回“ false ”。