据我所知,当使用-debug选项从控制台以调试模式启动AEM时,JVM将被强制分叉,但如果使用-debug -nofork选项启动AEM,结果会是什么?例如:
java -jar aem6-author-p4502.jar -debug 8000 -nofork
叉子或者nofork并不重要。 aem6将根据可用内存决定。如果要调试,请使用以下命令
java.exe -Xdebug -Xrunjdwp:transport = dt_socket,server = y,address = 9669,suspend = n -XX:+ PrintGC -XX:+ UseG1GC -XX:MaxGCPauseMillis = 200 -jar aem-quickstart-6.2.1.jar
然后在intellij或eclipse中将它与远程调试连接起来。你只能调试osgi包中的代码。你无法调试jsp代码。
对我有用的是在Eclipse中双击服务器实例。它打开了细节。在右下角附近,有一个“调试”选项。展开它并取消选中“连接时解析源”。
这使Eclipse无法将Eclipse代码与服务器内运行的代码进行比较。这不是一个理想的答案。理想情况下,我们希望将Eclipse代码与服务器代码同步,否则调试没有任何意义 - 假设您在调试时甚至连一行代码都关闭了。
我正在回答你的具体问题。有关此问题的更广泛答案,请参阅: