- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前正在使用一个旧的 Java SE 项目,它有一些版本的 SLF4J作为依赖项(例如引用 org.slf4j.Logger ),但是相关的类被打包在一个非常奇怪的 JAR 中,简称为 commons.jar
,我在互联网上找不到任何匹配的库与此文件匹配的内容; 是否有任何“智能”方法来查找与在该 JAR 文件中找到的已编译 Java 类文件相匹配的代码?该文件本身没有 metadata任何类型——仅编译的*.class
文件:
commons.jar
├── apache
│ ├── commons
│ ├── http
│ ├── log4j
├── slf4j
如上面的结构所示,JAR 似乎不“属于”任何常见的分发器;尽管它包含术语 apache、commons、log* 和 slf4j,但它似乎并不来自 Apache Commons或来自 SLF4J。
目前,我能想到的最好的办法是下载一堆 SLF4J 版本,解压它们,然后运行,例如cmp
来自神秘 JAR 的 org/slf4j/Logger.class
文件和来自每个版本的类似 Logger.class
文件,例如
cmp commons/org/slf4j/Logger.class slf4j-1.7.22/slf4j-api-1.7.22/org/slf4j/Logger.class
但是,这不仅涉及大量工作,而且我相信等效源的编译可能会略有不同,具体取决于相关 JAR 的分发者使用的确切编译器......这意味着它们不会在逐字节的基础上进行比较。我怎样才能以更智能的方式进行这种搜索?
最佳答案
如何反射(reflect)所有公共(public)类和私有(private)类及其成员,将它们放入字符串中,对字符串进行排序并为每个版本生成一个文本文件。
您将找到与库的神秘版本完全匹配的库版本,或者找到一个较小的范围。
关于java - 从已编译的类中推断出公开可用的 Java 代码的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41642442/
基础问题 我要解决的基本问题是: 我有一个模板参数包 ArgTypes,我需要用包装在 std::optional 中的每个类型创建一个元组。例如:make_optional_tuple应该返回 st
我使用 createEntityAdapter 设置了一个简单的 redux store。初始状态包含实体、ID、状态、错误设置等 const carouselEventAdapter = creat
我有一些(遗留)代码,如下所示: void castFoo(string type, void* foo) { FooA* foo_a = NULL; FooB* foo_b = NULL;
我的代码是 const int *const ptrA = nullptr; auto *ptrB = &ptrA; 我对 const int *const ptrA 的看法是: (*
我目前正在尝试用 C++ 实现 XOR 链表。我尝试使用模板使其通用。编译时会弹出此错误,我无法解决这个问题。 我尝试使用模板在谷歌上搜索 XOR 链表,但到目前为止似乎还没有实现它。 异或链表.h:
我正在尝试找到一种方法来调用多个类成员函数,每个函数都有不同的参数,并且在调用前后会发生某些已知功能。 这个包装函数是我试过的,但是例如对它的最终调用不会编译错误: 'bool Wrapper(Wor
此代码在 上编译成功g++ ( Coliru ) ,但不是 Visual C++ ( rextester ) - 在线和我的桌面。 它是一个更大的 Visual Studio 2015 项目的简化版本
我正在尝试编写一个通用类,它传递一个键 key 对应于一组已知接口(interface)中的一个的键,稍后可以传递一个对象 thing 并类型安全地访问 thing[key]。这是我得到的: inte
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我是一名优秀的程序员,十分优秀!