!ENTRY org.eclipse.ui 4 0 2006-08-03 14:16:30.394
!MESSAGE No more handles
!STACK 0
org.eclipse.swt.SWTError: No more handles
at org.eclipse.swt.SWT.error(SWT.java:2966)
at org.eclipse.swt.SWT.error(SWT.java:2863)
at org.eclipse.swt.SWT.error(SWT.java:2834)
at org.eclipse.swt.widgets.Widget.error(Widget.java:395)
at org.eclipse.swt.widgets.Control.createHandle(Control.java:482)
1. 解决方法,给Imageg对象创建缓存。方法有很多。下面提供其中一种方法。
ImageRegistry registry = Activator.getDefault().getImageRegistry();
Image image = registry.get(key);
if(image == null){
ImageDescriptor descriptor = getImageDescriptor(key);
image = descriptor.createImage();
registry.put(key, image);
}
return image;
===============================
就是放到 register 中来使用,同理 ImageDescriptor。。
2. 出现这个问题的原因
错误原因1:自己创建(new)Image、Font、Cursor等没有自己dispose掉,导致占用的Windows 的 GDI对象句柄非常多,Windows 的 GDI句柄不够用,这个很经常出现,改起来也比较容易
解决方法1:自己创建后一定要保存这些引用,在适当的时机进行dispose掉,如果是方法内部,最好在finally块中dispose。
错误原因2:Image没有得到合适的重用,导致句柄过多,虽然这个原因和第一个差不多,但是还是要分别列出一点,这样也可以培养大家狠好的编程经验吧,就是同样一个地方出现的image应该是相同,比如一个TreeViewer显示在一个View里,你现在想在一个Wizard显示这个Treeviewer,如果你是是新建的一个Treeviewer,那就应该使用同样的Provider,这样使得图像都用的同一个,而不会新开辟,这样就能减少GDI句柄的使用。
解决方法2:使用ImageDescriptor进行重用
错误原因3:也是我这次遇到的问题,我这次新建的Image大小达15000*4000,可以说是非常大的一张图像,有些计算机是开辟不了这么大的,对于非常大的图像,你打开以后,有时候会提示The image is too large,这说明你的计算机开辟不了这么大的图像。
解决方法3:适当等比例缩小图像,有时候会是因为你的程序开辟内存太小,在java启动参数扩大内存,至于有没有办法配置windows使其支持更大的图像,至今没有找到,如果谁找到了,请不吝赐教
提供一点,虽然是no more handle,不代表就一定是没有足够的句柄,也有可能跟第三个一样。
分享到:
相关推荐
有时候会弹出一个方框,里面的内容是Unhandled event loop exception No more handles,当你点击OK的时候,又会出来一个方框,里面第一句话是 An SWT error has occurred,并且诱导你关闭eclipse,严重影响了我们对...
Mozilla缺陷报告仓库特征分析,潘兴亮,胡燕,缺陷报告仓库管理一直是大型开源软件维护工作的关键问题之一。以Mozilla项目为例,通过收集和分析缺陷管理系统Bugzilla中的历史活动信
org.eclipse.swt.SWTError: No more handles [MOZILLA_FIVE_HOME=''] (java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: no swt-mozilla-gtk-4335 in java.library.path no swt-mozilla-gtk ...
kettle-linux环境下部署kettle,执行kitchen.sh文件报错后安装 libwebkitgtk,提示没有可用软件包libwebkitgtk 详细流程:https://blog.csdn.net/m0_37618809/article/details/81015492#commentBox
解决org.eclipse.swt.SWTError: No more handles [MOZILLA_FIVE_HOME=''] (java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: no swt-mozilla-gtk-4335 in java.library.path
实时手柄,可以控制三维空间物体的平移,缩放,旋转,框选等各种常用的功能。
no of handles 1 timer handle (`setTimeout(any, 1000)`) timer handle leaked at one of: at Test.t (/home/raynos/uber/leaked-handles/test/leak-timer.js:10:17) timer listener function any() {} no of ...
Visual Studio 2022 visualSvn 插件 亲测可用 如果你下载慢,就可以来这边下载。官方的下载速度太慢,真的等的没有耐心 VisualSVN is a professional grade Subversion integration plug-in for Visual Studio. Key...
Runtime Transform Handles,可再unity运行时拖拽旋转物体,可用于制作场景编辑器等功能
语言:English (United States) 在真实姓名旁边显示松弛句柄。 在真实姓名旁边显示Slack句柄。 这在大型社区Slack上特别有用,因为您不一定会通过句柄认识每个人。 确保在首选项的“消息和媒体”部分中选中了“显示...
文章目录源代码报错原因解决 源代码 # 需求:再添加一个城市的温度变化 #导入工具 import matplotlib.pyplot as plt import random #创建画布 plt.figure(figsize=(20,8),dpi = 80) #绘制图像,画出安徽省宣城市泾县...
filehandles软件包是一个Python库,它通过从目录,zip归档文件,tar归档文件,文件的URL地址等中删除用于打开文件的模板代码,从而简化了文件处理过程。已处理。 链接 filehandles @ filehandles @ 安装 该file...
If no output parameter is specified, then an interactive GUI window will be displayed with a tree-view of all container components, their properties and callbacks. Syntax: [handles,levels,parentIds,...
ObjectHandles,可以直接拖拉,改变对象的大小与角度
ObjectHandles-2.0.0008,可以对图片进行缩放操作。
开源项目-libeclipse-memguard.zip,MemGuard: A library that handles sensitive values in memory.