【问题标题】:Can I put a breakpoint in the main method when I do not know the class whose main method is invoked during startup?不知道启动时调用main方法的类,能否在main方法中下断点?
【发布时间】:2017-10-26 20:49:07
【问题描述】:

我正在开发一个由数千个 jars 组成的复杂 java 应用程序,包括 spring 和 jetty。是否可以在 main() 方法中放置断点?我不知道在启动过程中使用了哪个类的 main 方法。我能够在命令行上启动应用程序并使用 Eclipse 或 IntelliJ IDEA 远程连接到它。我还可以在调试模式下运行应用程序并让它等待调试器附加到它。

应用程序是这样启动的:

/java -Xss512k -XX:+HeapDumpOnOutOfMemoryError -XX:-UseCodeCacheFlushing -XX:-Tiered=path.to.log.file -XX:StackShadowPages=20  -classpath path.to.jar.file launcher.OsgiLauncher -Frobnitz path.to.Jetty94.jetty.gen.xml

【问题讨论】:

  • 找到main方法应该不难,因为Java在这里不支持太多复杂性。应用如何启动?
  • 使用 osgi 标签会有更好的运气。 AFAIK,带有命令行的 main() 方法就是 OSGi 本身,也就是 launcher.OsgiLauncher 类有它。

标签: java eclipse intellij-idea jetty osgi


【解决方案1】:

您可以为此使用通配符方法断点(https://www.jetbrains.com/help/idea/2017.1/creating-method-breakpoints.html#d871635e20), 查看替代创建方法:

然后请取消设置断点属性中的模拟复选框,因为错误IDEA-173268

【讨论】:

    猜你喜欢
    • 2014-03-26
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 2019-03-24
    • 2012-09-28
    • 1970-01-01
    相关资源
    最近更新 更多