有没有办法使用javassist在系统搜索路径中查找现有java类的列表?我知道你可以使用“.getDefault()”来返回系统的默认搜索路径,有没有一种方法可以在不知道类名的情况下列出这个搜索路径上的类。你可以使用javassist抓取项目中的所有类吗?
回答
如果安装一个代理/变压器项目,你可以轻松登录或以某种方式保存所有被加载到你的项目
public class Agent {
public static void premain(String agentArgs, Instrumentation inst) {
inst.addTransformer(new ClassFileTransformer() {
@Override
public byte[] transform(ClassLoader classLoader, String s,
Class<?> aClass, ProtectionDomain protectionDomain,
byte[] bytes) throws IllegalClassFormatException {
// here you will see all the classes that are loaded into your project
// So just log its full name
System.out.println(s);
}
}
}
我认为这种方法只记录已加载的类,而不是所有现有的类。我相信只有一个可以使用的古老的“扫描所有罐子”方法。 – Panayotis 2017-08-29 14:03:35
该方法拦截将要加载到JVM中的所有类。我没有记录所有的类,这意味着如果你的项目中有你的项目中的类(例如JUnit测试)未加载,将不会出现在日志上 – rakwaht 2017-08-29 14:05:52
只是在快速的谷歌查询后,我发现这基本上解决了问题在这里用我提出的同样的方法问到https://zeroturnaround.com/rebellabs/how-to-inspect-classes-in-your-jvm/ – rakwaht 2017-08-29 14:08:56
- 1. Python抓取JSON - 获取所有项目
- 2. 如何使用scrapy来抓取网站中的所有项目
- 3. 如何使用scrapy抓取项目来使用所有的cpus?
- 4. 你可以在Cocoa(Obj-C)项目中使用C++库吗?
- 5. SqlProfileProvider - 你可以在项目中使用Profile.GetProfile()吗?
- 6. 你可以在现有的GWT项目中加入GwtBootstrap3吗
- 7. 你可以删除appengine项目吗?
- 8. 使用模式获取Javassist的所有类
- 9. 可以在javassist中访问Groovy脚本中声明的类吗?
- 10. 你可以从vb.net项目中引用/调用Python工具吗?
- 11. 我可以在我的项目中使用Magento的类吗?
- 12. 类库可以使用主项目中存储的函数吗?
- 13. 你可以通过所有单选按钮选项卡吗?
- 14. 我可以获取项目中的所有字段吗?(在Sitecore中)?
- 15. 添加库,以便它可以在所有项目中使用
- 16. 可以共享点搜索抓取隐藏列表中的项目吗?
- 17. 在Flex 4.5中,DataGroup的所有单个项目都可以使用accessibilityEnabled吗?
- 18. 你能列出ClearCase组件中的所有Java项目吗?
- 19. 我可以在项目目录之外执行scrapy(python)抓取吗?
- 20. 你可以使用Python中的类的字符串格式吗?
- 21. Subversion是否可以用于所有类型的项目?
- 22. 我可以在.NETCoreApp项目中使用.NETFramework项目吗?
- 23. 我可以在库项目中使用项目库吗?
- 24. 你可以在IIS中使用node.js吗?
- 25. 你可以在sessionStorage中使用jQuery吗?
- 26. 你可以在Eclipse中使用JAXX吗?
- 27. 你可以在$ .post()中使用$(this)吗?
- 28. 你可以在RCloud中使用LaTex吗?
- 29. 你可以在Gitlab中使用word_diff吗?
- 30. 你可以在DataTemplate中使用CollectionViewSource吗?
在类路径中的所有类的类,你是什么意思?什么是“不必事先指定类名”? – acdcjunior 2013-05-02 01:22:19
通常要用javassist修改一个类文件,可以声明“pool.get(”class_name“);”它搜索与底层JVM(Java虚拟机)默认具有的class_name.class字节码相同的路径。我问是否有可能抓住所有类而不抓住一个类(本例中的“class_name.class”) – 2013-05-02 01:42:17
您是否找到了解决此需求的解决方案? – Panayotis 2017-08-06 08:03:06