我将其中一两个class文件反编后,输出的是jad文件, 改为java就是源码啦, 我修改了之后, 又怎么返回到class文件呢,用JDK 6 的javac 输出class 提示丢失包, 和很多个找不到符号, 请教一下该怎么做, 谢谢!!!

解决方案 »

  1.   


    JAD: *.CLASS ==> *.JAVA
    JAVAC: *.JAVA ==> *.CLASS
      

  2.   

    不行啊, 我只是针对其中某两个文件反编, 用javac 都提示找不到包和找不到符号
      

  3.   

    我设置了path, classpath 结果还是同样的提示, 郁闷....系统变量下新建Classpath
    .;C:\Program Files\Java\jdk1.6.0_13\lib\dt.jar;C:\Program Files\Java\jdk1.6.0_13\lib\tools.jar;C:\Program Files\Java\jdk1.6.0_13\lib\jconsole.jarpath后面添加
    ;C:\Program Files\Java\jdk1.6.0_13\bin没错吧,
      

  4.   

    如果你想把修改后的.java文件在编译回去的话,你这能把它放回源程序重新运行!我就遇到过这种问题!
      

  5.   

    如果你那两个java文件调用了其它包的话,那就无法编译回去,除非你把这两个文件所调用的包也反编译成java文件,然后在重新运行编译才行!
      

  6.   

    你应该找到这两个Class所依赖的jar才可以进行编译。
      

  7.   

    有提示, 软件包 com.jason.core.exception 不存在
    但是找不到exception.class这个文件, 
      

  8.   

    是没有找到com.jason.core.exception 包,并不是指 com.jason.core.exception.class文件你应该去找到这个class所在的系统中找这个包
      

  9.   

    我找到包了, 是.jar格式的, 应该把这个文件放到哪里, 要不要先把里面的class先反编成java文件, 然后放到对应的目录下?
      

  10.   

    为什么反编class为jad的时候不需要这些包,现在要把java编绎成class却需要呢?
      

  11.   


    编译原理LZ大学没学过么? 
    java编译器编译源文件时会进行词法分析、语法分析、语义分析...而JAD不是一个编译器
      

  12.   

    jar里面的类不需要再反编译了,你只需要javac -classpath t.jar A.java就可以了
    JAD不需要是转为Class中已经声明了清楚要调用的方法、成员的准确名称。所以可以反编译出来但是在编译的时候,javac 就需要知道callMethod(....)这样一个语句时,方法的参数是什么、有什么成员变量等。
      

  13.   

    反编译命令:jad -sjava *.class,者可以把一个目录下所有class反编译成.java文件,无需修改后缀名。
    但是再编译取决于两点:
    1.是否反编译的是合法的java代码,反编译完,往往try catch finally会反编译错误。
    2.再编译的时候原先依赖的calss、jar找不到。
    如果遇到第二点,可以把原先的class打成jar,作为classpath的一部分去编译,就能成功。
      

  14.   

    不好意思, 我英语专业的, JAVA第一次接触, 我是有用到才去了解一点, 大家不要见怪.