报错的java文件也能编译成class文件??

hjjk123 2010-05-14 05:02:27
最近看一本书的源码

遇到了棘手的问题

一个类 如果 用javac编译 会报错!但源程序中存在class文件!

那他那个class文件哪来的呢??

说明下

按照书中的思路 那个类本该报错!但那个class文件怎么来的呢??
...全文
571 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjjk123 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 qybao 的回复:]
从你的截图来看,应该是相应类的没有能正确加载
你是在编译Cracker,所以还谈不到其他程序动态加载Cracker(只有运行其他程序运行时加载Cracker的时候才涉及到这个问题),所以,现在的问题出在Cracker用到了其他包的类,你就必须保证你的ClassPath能找到相应的类,否则肯定编译出错
原来的代码存在Cracker.class,可能当时作者的环境里有相关的Greeter类和Del……
[/Quote]

谢谢!!
嘿嘿!!
高手就是这么别出心裁/.........
qybao 2010-05-14
  • 打赏
  • 举报
回复
从你的截图来看,应该是相应类的没有能正确加载
你是在编译Cracker,所以还谈不到其他程序动态加载Cracker(只有运行其他程序运行时加载Cracker的时候才涉及到这个问题),所以,现在的问题出在Cracker用到了其他包的类,你就必须保证你的ClassPath能找到相应的类,否则肯定编译出错
原来的代码存在Cracker.class,可能当时作者的环境里有相关的Greeter类和Delegated类
hjjk123 2010-05-14
  • 打赏
  • 举报
回复
没人回答啊???????
hjjk123 2010-05-14
  • 打赏
  • 举报
回复




我简单说下他实现的原理

是用一个ClassLoader加载这个类(Cracker)!也就是class文件!过程还要复杂!就这么说!
如果没有class文件 就会说无法加载这个Cracker类!但直接编译要运行的类
  • 打赏
  • 举报
回复
应该没有其它方式了
hjjk123 2010-05-14
  • 打赏
  • 举报
回复
大家不要怀疑我的配置问题!以及作者是不是错了!!我只是想知道 有没有其他 方式编译



例如那个大哥上面说的!

引入其他类

hjjk123 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qybao 的回复:]
报什么错?是不是包没正确导入
可能源码原来是正确的,然后也编译了
只是在刻盘的时候,漏了某些包,或者编译后又改了代码,但没重新编译
[/Quote]

呵呵!源码没错误!!这个我可以保证!


那个程序是自定义类加载器!所以要加载class文件!
但编译不成功怎么产生class文件啊


zgzdzh 2010-05-14
  • 打赏
  • 举报
回复
那大概就是你本地环境的问题了。。看看JDK的版本是否对。。
hjjk123 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zgzdzh 的回复:]
别人编译的时候可能加了其他的jar包。。。
[/Quote]

有可能!

但只知道加载class文件可以用自定义类加载器加载
那编译能用其他的类加载呢!
hjjk123 2010-05-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dingoolu 的回复:]
是不是之前这个文件没错是产生的?只是现在没删掉而已,你把所有的class文件都删了再编译一下看看
[/Quote]

不是 的!就是那个class 文件!

并且用这个class文件可以运行处想要实现的结果!

class就应该是错误的!

qybao 2010-05-14
  • 打赏
  • 举报
回复
报什么错?是不是包没正确导入
可能源码原来是正确的,然后也编译了
只是在刻盘的时候,漏了某些包,或者编译后又改了代码,但没重新编译
绿光 2010-05-14
  • 打赏
  • 举报
回复
是不是你的java文件里面定义了多个类啊,有的类正确编译了生成了class,报错的没有生成class
zgzdzh 2010-05-14
  • 打赏
  • 举报
回复
代码贴上来帮你看看。。
zgzdzh 2010-05-14
  • 打赏
  • 举报
回复
别人编译的时候可能加了其他的jar包。。。
dingoolu 2010-05-14
  • 打赏
  • 举报
回复
是不是之前这个文件没错是产生的?只是现在没删掉而已,你把所有的class文件都删了再编译一下看看

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧