我想知道是否有办法编辑类文件中的代码?因为我似乎无法使用cmd将java文件编译成类文件,因为它总是会检测错误。我正在使用的Jar文件已经有了自己的现有类文件,我想用几行代码更新一个.class文件。但是当我从类文件中复制代码并将其与我添加的代码行一起放入java文件中,然后尝试使用cmd编译它时,每当我尝试编译它以生成类文件时,cmd将生成错误。
这是否意味着我需要对整个jar文件进行反编译并将其转换为java文件,然后将其重新编译为类文件,然后再将其转换为新的jar文件?为了实现我想要做的事情?
现在我正在使用这个JCIFS jar文件,我想在一些类文件中添加一些代码行。我在提及这个" https://code.google.com/p/android-smb-streaming/"作为指南,我发现这个人能够使用相同的代码行来自定义/添加一个新的类文件,该代码行来自jar文件中的现有类以及他自己添加的代码行。
我可以知道如何实现这一目标吗?谢谢。
答案 0 :(得分:2)
您需要做的是常见情况:您发现了一个开源项目的错误/功能请求。
您可以尝试联系图书馆的作者,提交您的文章并等到获得新版本,以便获得新的酷炫功能,而不是黑客攻击。
另一方面,您可以使用公开的API来根据您的需要对其进行自定义,例如,创建一个特定的子类,该子类覆盖包含少量代码行的必需方法,并以一种使用API的方式使用API
如果你想采用hacky方式,就没有必要直接操作类文件(它要复杂得多):简单的方法是下载项目,阅读文档如何设置(所以你可以编译)它与cmd没有错误),添加你的补丁,编译它,然后你可以用新的类文件(或文件)更新用过的JAR文件:请注意,如果你可能有多个文件生成'使用内部类或lambdas)。只是不要忘记在文档中的某处提及,否则没有人会知道库有轻微的修改......