java文件还有大小限制吗!为什么总出现这个错误!大家遇见过没有!!!!(20分)

  • 主题发起人 主题发起人 lishaoming
  • 开始时间 开始时间
L

lishaoming

Unregistered / Unconfirmed
GUEST, unregistred user!
java文件还有大小限制吗!为什么总出现这个错误!大家遇见过没有!!!!
java.lang.ClassFormatError: wbh_read/wbhKey (Code of a method longer than 65535 bytes)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
at wbhFrm.<init>(wbhFrm.java:25)
at wbhFrm.main(wbhFrm.java:2999)
Exception in thread "main" Process terminated with exit code 1
 
你其中的一個源文件太大了吧,很多開發工具都有限制。
 
wbh_read/wbhKey 方法的执行体大于64K报错,显然该方法提炼有问题,需要重新拆分成几个小的方法。
 
这个问题的出在于定义的的方法代码过大,
我记得在C++中,定义类内函数的时候就对代码的行数就有限制,
或者说是建议限制,建议对方遵循模块化吧,
 
首先谢谢大家的支持!原先想着是在方法中初始化一些数据,现在看了不行了,数据太大了。
另外,想问问大家,我知道在Application中怎么调用二进制数据read.dat文件。但在Applet中怎么调用服务器中的read.dat二进制文件。不是在IE浏览器中不能调用外部的数据吗。!
 
IE是不能調用客戶端的數據,服務器上的還是可以的。它在服務器上可以做任何的事情。
 
>> 在Applet中怎么调用服务器中的read.dat二进制文件
服务器端写个程序,在Applet请求read.dat的时候,给他发送过去。这样行不?
 
呵呵,本人才经历过的,在Applet中存取文件(包括数据库连接什么的)真的是很麻烦哦,关键是安全管理问题,都要建立操作许可,对哪个URL,进行什么操作都要进行设置,看看java提供的一个工具看看:policytool,看看,
这就是Applet不同于ActiveX了,安全性高了,
我曾做了一个数据库连接的Applet,不仅要在服务端进行设置操作许可,也要在调用的客户端进行设置,才可以正常读取,否则都是安全管理不允许的!!
有讨论=》
Email:foolstudio@yahoo.com.cn
QQ:41758952
 
java虚拟机规范讲的很明白了...
方法个数,参数个数,域个数 都有 64k 的限制...
你的一个方法居然就有 64k 多,呵呵,也够累的了...
 
多人接受答案了。
 
后退
顶部