gpt4 book ai didi

java - "NegativeArraySizeException"- 自定义类加载器

转载 作者:行者123 更新时间:2023-12-02 00:26:44 26 4
gpt4 key购买 nike

我有一个类加载器正在工作,尽管我现在在将其适应我的新应用程序后遇到错误。我相信这是因为我正在将整数转换为长整型。

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”

谢谢。

最佳答案

是的,因为ZipEntry.getSize()可以返回-1。即使它没有返回-1,您也不应该假设对read的单个调用将读取所有数据。您应该循环读取,直到输入流返回 -1。

我建议您使用ByteStreams.toByteArray(InputStream)来自Guava为此。

关于java - "NegativeArraySizeException"- 自定义类加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9887222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com