我刚刚收到了一个第三方身份验证库,用于我的客户端应用程序。我没有收到任何文档,并试图挖掘通过源代码,看看它是如何工作的。当我点击IntelliJ中的方法上的Go To-〉*Declaration**时,我非常熟悉Java,它会把我发送到一个.class文件,我看到一堆stubed方法,其中包含/* compiled code */。我很确定这在Java中很常见,我只是不知道该搜索什么来了解到底发生了什么。任何澄清将是伟大的。
.class
/* compiled code */
bbuxkriu1#
这通常意味着你没有源代码,IntelliJ IDEA只会显示/* compiled code */作为你没有的源代码的占位符。我相信现在这种情况已经改变了,IntelliJ捆绑了一个完整的Java反编译器插件,并将显示反编译的源代码作为标准。为了更好地了解正在发生的事情,最好是接收第三方库的实际源代码。
当然,你也应该获得文档,因为阅读源代码和猜测如何使用库通常不是最好的学习方法。
第二个最好的选择是使用IntelliJ中的反编译器插件,它将自动反编译Java类文件(请注意,第三方库的许可证可能不允许您这样做)。这永远不会是一个100%的解决方案,但在大多数情况下,这比什么都没有要好。
qzlgjiam2#
你真的应该搜索/要求文档。Javadoc通常是无价的,如果方法做的事情你不能从它的名字猜到。否则使用反编译器,如JD-GUI。
tzcvj98z3#
如果你的库是用sourceFiles构建的:
sourceFiles
task androidSourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.sourceFiles//look at this line }
然后,您将看到带有/* compiled code */的类如果你的库是用srcDirs构建的:
srcDirs
task androidSourcesJar(type: Jar) { classifier = 'sources' from from android.sourceSets.main.java.srcDirs//look at this line }
然后,您将看到没有/* compiled code */的完整源代码的类
ilmyapht4#
参考-https://www.jetbrains.com/help/idea/decompiler.html在设置中启用Java Bytecode Decompiler插件。如果这是您第一次打开已编译的文件,IDE将提示您同意“JetBrains反编译器”对话框中指定的条款和条件。如果单击Accept,则以后将不会显示该对话框,并且将自动反编译相应的代码。
之后,IDE将向您显示人类可读的Java代码,而无需进行实际转换。类文件到。java文件。编辑器上方的黄色通知面板通知您正在阅读一个反编译文件。
4条答案
按热度按时间bbuxkriu1#
这通常意味着你没有源代码,IntelliJ IDEA只会显示
/* compiled code */
作为你没有的源代码的占位符。我相信现在这种情况已经改变了,IntelliJ捆绑了一个完整的Java反编译器插件,并将显示反编译的源代码作为标准。为了更好地了解正在发生的事情,最好是接收第三方库的实际源代码。
当然,你也应该获得文档,因为阅读源代码和猜测如何使用库通常不是最好的学习方法。
第二个最好的选择是使用IntelliJ中的反编译器插件,它将自动反编译Java类文件(请注意,第三方库的许可证可能不允许您这样做)。这永远不会是一个100%的解决方案,但在大多数情况下,这比什么都没有要好。
qzlgjiam2#
你真的应该搜索/要求文档。Javadoc通常是无价的,如果方法做的事情你不能从它的名字猜到。否则使用反编译器,如JD-GUI。
tzcvj98z3#
如果你的库是用
sourceFiles
构建的:然后,您将看到带有
/* compiled code */
的类如果你的库是用
srcDirs
构建的:然后,您将看到没有
/* compiled code */
的完整源代码的类ilmyapht4#
参考-https://www.jetbrains.com/help/idea/decompiler.html
在设置中启用Java Bytecode Decompiler插件。
如果这是您第一次打开已编译的文件,IDE将提示您同意“JetBrains反编译器”对话框中指定的条款和条件。如果单击Accept,则以后将不会显示该对话框,并且将自动反编译相应的代码。
之后,IDE将向您显示人类可读的Java代码,而无需进行实际转换。类文件到。java文件。
编辑器上方的黄色通知面板通知您正在阅读一个反编译文件。