不知道这个问题是否和Hibernate有关
不过在加载其他类时都没有问题,就是在加org.hibernate.cfg.Configuration时出错了?
异常代码:
[code]
Name=org.hibernate.cfg.ConfigurationSize=22877
Exception in thread "main" java.lang.ClassFormatError: Illegal UTF8 string in constant pool in class file <Unknown>
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at fanry.pub.MyLoader.loadClass(MyLoader.java:52)
at java.lang.ClassLoader.loadClass(Unknown Source)
at fanry.pub.MyLoader.main(MyLoader.java:10)
[/code]执行代码:
[code]
//Created on 2005-12-19
package fanry.pub;import java.io.InputStream;
import java.net.URL;
public class MyLoader extends ClassLoader {
private static int MAX_SIZE = 2000000; public static void main(String[] args) throws Exception {
new MyLoader().loadClass("org.hibernate.cfg.Configuration"); //运行出错
// new MyLoader().loadSysClass("org.hibernate.cfg.Configuration",true); //可以成功
} private Class loadSysClass(String name, boolean resolve)
throws ClassNotFoundException {
Class cls = findSystemClass(name);
// 如有必要,则装入相关的类
if (resolve && cls != null)
resolveClass(cls);
// 把类返回给调用者
return cls;
} /**
* 装入类
* @param name 名称
* @param resolve 是否解析
* @return 结果
* @throws ClassNotFoundException 出错
*/
public Class loadClass(String name, boolean resolve)
throws ClassNotFoundException {
URL url = getResource(name.replace('.', '/') + ".class");
if (url == null)
throw new ClassNotFoundException(name);
byte[] data = new byte[MAX_SIZE];
int size;
InputStream stream = null;
try {
stream = url.openStream();
size = stream.read(data);
System.out.println("Name=" + name + "Size=" + size);
} catch (Exception e) {
throw new ClassNotFoundException(e.toString());
} finally {
if (stream != null)
try {
stream.close();
} catch (Exception e) {
}
}
Class cls = defineClass(null, data, 0, data.length);
if (cls == null) //找到类
throw new ClassNotFoundException(name);
if (resolve) //需要解析
resolveClass(cls);
return cls;
}
}
[/code]
不过在加载其他类时都没有问题,就是在加org.hibernate.cfg.Configuration时出错了?
异常代码:
[code]
Name=org.hibernate.cfg.ConfigurationSize=22877
Exception in thread "main" java.lang.ClassFormatError: Illegal UTF8 string in constant pool in class file <Unknown>
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at fanry.pub.MyLoader.loadClass(MyLoader.java:52)
at java.lang.ClassLoader.loadClass(Unknown Source)
at fanry.pub.MyLoader.main(MyLoader.java:10)
[/code]执行代码:
[code]
//Created on 2005-12-19
package fanry.pub;import java.io.InputStream;
import java.net.URL;
public class MyLoader extends ClassLoader {
private static int MAX_SIZE = 2000000; public static void main(String[] args) throws Exception {
new MyLoader().loadClass("org.hibernate.cfg.Configuration"); //运行出错
// new MyLoader().loadSysClass("org.hibernate.cfg.Configuration",true); //可以成功
} private Class loadSysClass(String name, boolean resolve)
throws ClassNotFoundException {
Class cls = findSystemClass(name);
// 如有必要,则装入相关的类
if (resolve && cls != null)
resolveClass(cls);
// 把类返回给调用者
return cls;
} /**
* 装入类
* @param name 名称
* @param resolve 是否解析
* @return 结果
* @throws ClassNotFoundException 出错
*/
public Class loadClass(String name, boolean resolve)
throws ClassNotFoundException {
URL url = getResource(name.replace('.', '/') + ".class");
if (url == null)
throw new ClassNotFoundException(name);
byte[] data = new byte[MAX_SIZE];
int size;
InputStream stream = null;
try {
stream = url.openStream();
size = stream.read(data);
System.out.println("Name=" + name + "Size=" + size);
} catch (Exception e) {
throw new ClassNotFoundException(e.toString());
} finally {
if (stream != null)
try {
stream.close();
} catch (Exception e) {
}
}
Class cls = defineClass(null, data, 0, data.length);
if (cls == null) //找到类
throw new ClassNotFoundException(name);
if (resolve) //需要解析
resolveClass(cls);
return cls;
}
}
[/code]
解决方案 »
- Java Excel API 删除行的问题
- 急!!急!!!如何将BufferedWriter 最后一个字符去掉?
- 菜鸟问题,在线等!
- 谁有(java 2入门到精通)的电子书啊!
- validate()与pack()~~~
- java如何得到某个thread是另一个的子thread或父thread,不是threadGroup哦
- 在做数据输入输出流的实验时,怎样调用循环和中断键盘输入操作?
- 怎么让JTable中用户选中的任意一行信息不能编辑啊??
- 想写个程序能看到本机在网络通信过程中发出的所有数据,如何实现?
- 在java中vector代表什么意思?大大帮忙,一定给分
- yqj2065(严千钧) 朋友来领个分,谢谢。
- 这行起什么作用:UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
没用过什么特殊的工具