【发布时间】:2015-12-30 20:39:48
【问题描述】:
我一直在尝试解决这个问题,但没有想出正确的方法。我通读了this question,我已经尝试过了,但它的工作不太正常……使用 IntelliJ EAP 142.4675.3
我想要做的是使用我放置在 JAVA_HOME\jre\lib\ext 中的 jar(扩展 Provider 类)文件来调试 junit 测试。我希望那个 jar 也可以调试。
问题是,如果我将源目录附加为 jar 的源,那么,在堆栈跟踪中,当我单击命名文件(包含我希望查看的方法)时,IntelliJ 会要求我在两个同一个文件,大概是因为它知道源(它在我项目的一个模块中),并且还通过我添加的 jar 源路径被告知了源。
我尝试将provider.jar添加到项目模块依赖项选项卡中,这导致intellij无休止的悲伤。恢复到在 jre\lib\ext 中,并且在 Platform Settings->SDKs->1.8->Sourcepath 选项卡中,我添加了模块源路径。这让 intellij 进入 jar 的 .java 文件,而不是 .class 文件,但是,当它这样做时,我现在在我的代码窗口顶部看到一个横幅,上面写着“可用于类 xxx 的替代源”和RHS 有一个组合框,其中列出了两次模块名称(在最新的 EAP 中,它实际上列出了模块和 jar [与模块同名,带有 .jar])。而且,如前所述,当我单击堆栈跟踪中的文件时,IDE 会询问我希望编辑哪个(同一个)文件。
显然,有些地方不太对劲……我错过了什么?我觉得奇怪的是,在我附加上面的代码之前,ide 在进入 jar 时不会打开源代码,但是,当我这样做时,它会看到它两次。
【问题讨论】:
-
第一个链接几乎总结了我链接到的 q 中的答案......第二个,真的很糟糕。我从 jre\lib\ext 目录中删除了 jar,然后通过依赖项选项卡、运行时范围添加了一个副本。现在,在运行 junit 测试时,intellij 抱怨它无法验证 out\production\blahblah 中的 jar。
标签: java debugging intellij-idea jar