由于操作系统限制,文件后缀名只能为3位,如何让虚拟机找到3位后缀名的类? 我想象中这个应该自己写类加载器来实现,这种思路是否可以解决这个问题?有做过这方面需求的大侠来肯定一下吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 完全是可以的,以下是在common.FileSystemClassLoader实现的主方法:请注意String pathName = currentRoot + File.separatorChar+ className.replace('.', File.separatorChar) + ".class";这句话.public byte[] findClassBytes(String className) { try { String pathName = currentRoot + File.separatorChar + className.replace('.', File.separatorChar) + ".class"; FileInputStream inFile = new FileInputStream(pathName); byte[] classBytes = new byte[inFile.available()]; inFile.read(classBytes); return classBytes; } catch (java.io.IOException ioEx) { return null; }}public Class findClass(String name) throws ClassNotFoundException { byte[] classBytes = findClassBytes(name); if (classBytes == null) { throw new ClassNotFoundException(); } else { return defineClass(name, classBytes, 0, classBytes.length); }}public Class findClass(String name, byte[] classBytes) throws ClassNotFoundException { if (classBytes == null) { throw new ClassNotFoundException("(classBytes==null)"); } else { return defineClass(name, classBytes, 0, classBytes.length); }}public void execute(String codeName, byte[] code) { Class klass = null; try { klass = findClass(codeName, code); TaskIntf task = (TaskIntf) klass.newInstance(); task.execute(); } catch (Exception exception) { exception.printStackTrace(); }} 一个新手的简单问题求解答谢谢 在类里面 如何将回车去掉 在生成子类对象的时候是否也生成父类的对象;加载方面的一些问题 一个小问题 *********一个面试题!********大家进来帮忙看看! 在jbuilder2006里边怎么同时使用jdk1.4和jdk1.5 怎么用jb把做出来的变成类是exe的文件啊?? 有知道JTextPane如何设置Tab键数目的方法吗? 请问蔡学墉是他妈什么东西? 谁知道或者作过类似于微软资源管理器的东西?能否给我源代码?jTree. 请问,用什么方法读取CSV格式的文件? 学过JAVA一定要进来!!!
请注意String pathName = currentRoot + File.separatorChar+ className.replace('.', File.separatorChar) + ".class";这句话.public byte[] findClassBytes(String className) {
try {
String pathName = currentRoot + File.separatorChar
+ className.replace('.', File.separatorChar)
+ ".class";
FileInputStream inFile = new FileInputStream(pathName);
byte[] classBytes = new byte[inFile.available()];
inFile.read(classBytes);
return classBytes;
} catch (java.io.IOException ioEx) {
return null;
}
}public Class findClass(String name) throws ClassNotFoundException {
byte[] classBytes = findClassBytes(name);
if (classBytes == null) {
throw new ClassNotFoundException();
} else {
return defineClass(name, classBytes, 0, classBytes.length);
}
}public Class findClass(String name, byte[] classBytes)
throws ClassNotFoundException {
if (classBytes == null) {
throw new ClassNotFoundException("(classBytes==null)");
} else {
return defineClass(name, classBytes, 0, classBytes.length);
}
}public void execute(String codeName, byte[] code) {
Class klass = null;
try {
klass = findClass(codeName, code);
TaskIntf task = (TaskIntf) klass.newInstance();
task.execute();
} catch (Exception exception) {
exception.printStackTrace();
}
}