Java &引用;NegativeArraySizeException";-自定义类加载器
我有一个类加载器正在工作,尽管在将它调整到我的新应用程序后,我现在遇到了一个错误。我相信这是因为我正在把一个整数转换成一个长整数Java &引用;NegativeArraySizeException";-自定义类加载器,java,class,memory,loader,encryption,Java,Class,Memory,Loader,Encryption,我有一个类加载器正在工作,尽管在将它调整到我的新应用程序后,我现在遇到了一个错误。我相信这是因为我正在把一个整数转换成一个长整数 private byte[] loadClassData(String name) { try { JarInputStream jis = new JarInputStream(new ByteArrayInputStream(dec)); JarEntry entry = null; String entry
private byte[] loadClassData(String name) {
try {
JarInputStream jis = new JarInputStream(new ByteArrayInputStream(dec));
JarEntry entry = null;
String entryName = null;
while((entry = jis.getNextJarEntry()) != null)
{
entryName = entry.getName();
if(entryName.equalsIgnoreCase(name))
{
try{
classBytes = new byte[(int)entry.getSize()];
jis.read(classBytes, 0, classBytes.length);
return classBytes;
}catch(Exception ex){
ex.printStackTrace();
return null;
}
}
}
return classBytes;
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
} catch (Exception ex) {
ex.printStackTrace();
System.out.println(ex.getMessage());
}
return null;
}
无论如何,这是它的基础。“new byte[(int)entry.getSize()];”部分出错
“java.lang.NegativeArraySizeException”
谢谢。是的,因为您可以返回-1。即使它没有返回-1,也不应该假设对read
的单个调用将读取所有数据。您应该在循环中读取,直到输入流返回-1
我建议您为此使用from。是的,因为可以返回-1。即使它没有返回-1,也不应该假设对read
的单个调用将读取所有数据。您应该在循环中读取,直到输入流返回-1
我建议您使用from