最近做了个实验,是将一个系统内的某个class文件替换为自己调用源代码而创建出的class文件,但是结果系统却报错了,这是为什么?求指导

解决方案 »

  1.   

    主要是2个原因
    原因1:你的jdk版本不匹配
    原因2:你写的代码运行时报错
      

  2.   

    比如说,我有一个Cloning类,我简单写了一个test类,public class Test {
    public static void main(String[] args){
    Cloning cloning = new Cloning();
    System.out.println(cloning.toString());
    }
    }
    但是原系统中肯定不是这么调用的,我想知道这个程序运行出来的cloning.class与原系统的cloning.class是一样的吗?
      

  3.   

    这是想把“系统”的class换成自己的,然后在自己的class中作一些“特殊”的处理???
      

  4.   

    我的意思是在我的软件系统中有一个文件cloning.class,他是一个在web上被调用的action,但是现在呢,我将他的源代码cloning.java拿出来到eclipse中运行,
    public class Test {
    public static void main(String[] args){
    Cloning cloning = new Cloning();
    System.out.println(cloning.toString());
    }
    }
    用这个Test类来生成一个cloning.class;我的问题是:这两个class有区别么?如果有区别的话,我该怎么做才能生成一个与原来软件系统中一样的cloning.class,多谢指导!!
      

  5.   

    要生成class,javac编绎一下就出来了。假如你的拿到的“源码”是真的,编出来的class文件就是一样的,前提是jdk版本和原来的相同,而且cloning.java中没有引用其它未知的类
      

  6.   

    比如说cloning.java的路径为F:\WorkSpace2\DemoClass\src\sapphire\custom\lifesci\construct\cloning.java
    但是cloning.java中调用了F:\WorkSpace2\DemoClass\src\sapphire\custom\lifesci\misc\LIFESCIUtil.java这个类中的方法,我该怎么写javac?我试了几次都报错了,