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这些方面没设置好啊。总得来说这个问题太弱智了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值