我在.groovy文件中有以下代码行供测试:
GenerateShipConfirmsForBatch gscb = new GenerateShipConfirmsForBatch();
按住Ctrl键并单击GenerateShipConfirmsForBatch会将我带到.jar中的GenerateShipConfirmsForBatch.class,而不是.java文件,即使我在顶部正确导入了类。我希望它引用.java文件,以便它接收我对.java文件所做的更改。
任何帮助将不胜感激!
答案 0 :(得分:5)
你写的内容在我看来就像你在2个不同的包或导入的项目中使用相同名称的类而不是在开放的java类中。导入类时请注意导入要使用的类。
EG。注释类服务在不同的包中被广泛使用。
import org.springframework.stereotype.Service;
import com.google.web.bindery.requestfactory.shared.Service;
只需检查您是否使用了正确的导入。
如果您拥有多模块应用程序,则必须正确设置父项目以正确解决此问题以及链接也应该是子项目。
在 Maven 中,使用pom.xml
完成。在Maven - Guide to Working with Multiple Modules中很好地解决了这个问题。
在 Gradle 中,使用build.gradle
完成。您可以阅读更多相关信息Gradle Multi-Module Project Setup。
Idea会优先关联本地.java
文件,而不是.class
,因此如果发生这种情况,我建议重新安装Idea,因为我找不到正确的方法。
如果您已导入外部库,它将链接到.class
,因为它是从.jar
文件反编译的。
如果您使用.jar
点击Maven Projects
,则可以使用源代码下载Download Sources and/or Documentation
。
答案 1 :(得分:1)
仅仅因为您在顶部导入了类并不意味着您可以查看源代码(例如,.java
文件)。如果此类来自pom.xml
或build.gradle
文件中定义的依赖项,那么您可能无权查看源代码。但是,如果这是您在项目顶层的单独模块,那么您将能够查看.java
文件。如果这个库是开源的,那么我建议在项目中克隆它并将其作为模块添加。这将解决您的问题。
答案 2 :(得分:1)
您可以从此处安装 Java Decompiler IntelliJ插件:https://plugins.jetbrains.com/plugin/7100-java-decompiler-intellij-plugin
它允许您在调试过程中显示所有Java源代码,即使您没有全部