Hi everyone,
I was trying to run NetLogo in headless mode and was unable to get it working. After troubleshooting with ChatGPT, I was advised to modify the JVM options by adding -Xshare:off.
Originally, I had:
JVM_OPTS=(
-XX:MaxRAMPercentage=50
-Dfile.encoding=UTF-8
-Dnetlogo.extensions.dir="${BASE_DIR}/extensions"
-Dnetlogo.models.dir="${BASE_DIR}/models"
--add-exports=java.base/java.lang=ALL-UNNAMED
--add-exports=java.desktop/sun.awt=ALL-UNNAMED
--add-exports=java.desktop/sun.java2d=ALL-UNNAMED
)
After changing it to:
JVM_OPTS=(
-Xshare:off
-XX:MaxRAMPercentage=50
-Dfile.encoding=UTF-8
-Dnetlogo.extensions.dir="${BASE_DIR}/extensions"
-Dnetlogo.models.dir="${BASE_DIR}/models"
--add-exports=java.base/java.lang=ALL-UNNAMED
--add-exports=java.desktop/sun.awt=ALL-UNNAMED
--add-exports=java.desktop/sun.java2d=ALL-UNNAMED
)
NetLogo started working correctly in headless mode.
My question is: why would adding -Xshare:off fix the issue?
For context:
-
NetLogo version: 6.4.0
-
Java version: jdk 25
-
OS: Debian
-
Environment: On-premise
Any insight into the underlying cause would be appreciated.
Thanks!