¿Qué hace el indicador dynamic.classpath? (Configuración del proyecto IntelliJ)

Dentro del archivo .idea / workspace.xml, se puede encontrar lo siguiente:

 ...   

¿Cuál es el propósito del indicador dynamic.classpath?

Establecerlo como verdadero pasa a ser una solución para un error de IntelliJ. Pero también tengo curiosidad si tiene algún efecto secundario.

Esta opción controla cómo se pasa classpath a la JVM: a través de la línea de comando o a través de un archivo. La mayoría de los sistemas operativos tienen un límite máximo de línea de comando, cuando se supera, IDEA no podrá ejecutar su aplicación.

Cuando la línea de comando es más larga que 32768 caracteres, IDEA sugiere que cambie a la ruta de clase dinámica. Long classpath se escribe en un archivo, luego se lee mediante el iniciador de aplicaciones y se carga mediante el cargador de clases del sistema.

Si está interesado en los detalles de la implementación, puede verificar el código fuente de la edición comunitaria IDEA, el archivo setupJVMCommandLine , el método setupJVMCommandLine .

Un efecto secundario con IntelliJ 9.0.4 es que después de activar la opción, la ruta de clase ya no está completa.

En mi caso, la opción se reinicia después de que elijo ” ” en un diálogo de error al ejecutar todas las pruebas unitarias en un paquete específico. El mensaje de error dice “La línea de comando es demasiado larga. Para reducir su longitud, se puede usar el archivo classpath. ¿Desea habilitar el modo de archivo classpath para todas las configuraciones de ejecución de su proyecto?

Después de esto, algunas pruebas fallaron debido a que las clases necesarias de otros módulos, que estaban perdiendo en el classpath.

No encontré ningún diálogo donde pudiera cambiarlo. Tuve que editar manualmente el archivo .iws y cambié la opción dynamic.classpath a ” false “.