Ghidra Java API报NoClassDefFoundError的解决方法

Ghidra Java API报NoClassDefFoundError的解决方法,第1张

Ghidra Java API报NoClassDefFoundError的解决方法

Ghidra是很优秀的逆向工程工具,我也写过一些博客介绍其Java API的用法,例如:Ghidra在Eclipse中新建和运行项目的路径问题_qysh123的专栏-CSDN博客

但是不得不吐槽,其Java API用起来真的是太傻了。我经常遇到的一个问题是:往往我们按照Java的规范新建了类,也包含在classpath中,但是就是报找不到这个类,例如:

ERROR Abort due to Headless analyzer error: Node (HeadlessAnalyzer) java.lang.NoClassDefFoundError: Node

顺便说一下Java打印classpath路径的方法:

System.out.println(System.getProperty("java.class.path"));//当前的classpath路径
System.out.println(System.getProperty("user.dir"));//用户的当前路径

而且这个问题的发生似乎还有随机性,我发现如果更新代码之后(例如加上或删掉一行),再运行的时候就不太容易报这个错,真是让人无力吐槽啊。经过请教师妹,终于搞清了这个问题的解决方法:如果是ubuntu系统,在用户目录下会有一个隐藏文件夹:.ghidra

我们需要在每次运行script之前删掉类似于这样的:/home/yu/.ghidra/.ghidra_10.0.1_PUBLIC/osgi/compiled-bundles 目录下的所有文件夹,从这个路径来看,还是OSGI或者classpath这些方面没设置好啊。总得来说这个问题太弱智了。

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5672169.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存