不兼容的魔术值错误
|
我在以下链接中查看示例:
http://www.javaworld.com/javaworld/jw-10-1996/jw-10-indepth.html?page=1
这是我得到的输出:
该程序将使用SimpleClassLoader。
>>>>>>负荷等级:TestClass
>>>>>>不是系统类。
>>>>>>获取TestClass的实现
文件已成功读取
线程\“ main \” java.lang.ClassFormatError中的异常:类文件中的魔术值1768779887不兼容
在java.lang.ClassLoader.defineClass1(本机方法)
在java.lang.ClassLoader.defineClassCond(未知来源)
在java.lang.ClassLoader.defineClass(未知来源)
在java.lang.ClassLoader.defineClass(未知来源)
在aha.SimpleClassLoader.loadClass(SimpleClassLoader.java:80)
在aha.SimpleClassLoader.loadClass(SimpleClassLoader.java:42)
在aha.Example.main(Example.java:11)
这是我的读取文件方法的示例:
private byte getClassImplFromDataBase(String className)[] {
System.out.println(\" >>>>>> Fetching the implementation of \"+className);
byte result[];
try {
FileInputStream fi = new FileInputStream(\"C:/delete/\"+className+\".impl\");
result = new byte[fi.available()];
fi.read(result);
System.out.println(\"file was read succesfullyl\");
return result;
} catch (Exception e) {
/*
* If we caught an exception, either the class wasnt found or it
* was unreadable by our process.
*/
return null;
}
}
我将TestClass.impl文件放在C:/ delete目录下。
我的课程位于以下软件包中:aha
因此,文件TestClass.impl可以正常读取,但是在
结果= defineClass(classData,0,classData.length);
我知道此方法已被弃用,但还是??
没有找到相关结果
已邀请:
2 个回复
郸身
在ASCII中为
或
。 (我怀疑ѭ5的前四个字节) 因此在我看来,您正在尝试加载无法执行的未编译Java代码(这是编译器的目的),您最好使用Compiler API,但我怀疑您确实需要像OSGi这样的东西来尝试加载上课本身需要您对类加载的工作方式有非常详细的了解。
岭取