使用javac命令生成.class文件的注意事项

前几天一个没有源代码的java项目出了一个问题,有一个功能无法正常使用。

通过查看Tomcat的异常日志,定位到了一个.class文件里面的方法,于是就想着将其反编译成.java文件,改完之后再编译成.class文件替换回去。

反编译使用的jadx工具,不在这里赘述。

但是改完之后,用javac生成.class文件时,一直不成功,报出很多错误,找不到这个包那个包的。

在网上找了一圈,对于jar包,将其放入jre\lib\ext目录之后,编译没出错了。

但是,那个java文件本身还引用了一些.class文件,一直无法通过编译,尝试了各种网上找的办法,比如将.class放到jdk的bin目录,比如把java文件放到.class文件一起,比如环境变量里面将classpath设为.class文件的目录,均无法成功。

最后,还是在网上找到了一个方法,终于成功了。

首先,将.class文件按其包的名称建一个层级目录,比如.class的package是com.a.b.c,那么就建4层目录com\a\b\c,将.class文件放到c里面,com目录放在D:\java\下,然后,在cmd中执行如下命令:

javac a.java -cp "D:\java\"

就可以成功生成了。

另外,需要特别注意的是,如果是在服务器上进行生成操作,那么ext目录下的jar包在生成完后,记得立刻删除,否则重启Tomcat之后,它会优先使用ext目录下的jar包,然后你的整个网站就等着报404错误吧。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值