我在Centos 7上安装了netbeans 8.2。
我收到此错误:
java.lang.RuntimeException: failed to load system cursor: DnD.Cursor.CopyDrop : cannot load system cursor: CopyDrop.32x32
at java.awt.dnd.DragSource.load(DragSource.java:135)
at java.awt.dnd.DragSource.<clinit>(DragSource.java:148)
Java版:
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-b15)
OpenJDK 64-Bit Server VM (build 25.111-b15, mixed mode)
我该如何解决这个问题?
答案 0 :(得分:5)
我在虚拟盒中遇到了Kali的问题。
如果您的操作系统位于virtualbox中,则该操作将关闭操作系统。
然后关闭&#34; 启用3D加速&#34;在机器下 - &gt;设置 - &gt; Dispaly。
启动您的操作系统并享受!
答案 1 :(得分:5)
似乎这个bug是用java 8u152 b05解决的。 以下代码传递了8u152,但使用Java 8u131抛出了上述异常:
public static void main(String[] args) {
DragSource.getDefaultDragSource();
}
目前,“JDK 8更新早期访问构建”中提供了8u152: http://jdk.java.net/8/
答案 2 :(得分:2)
我的Java代码使用JTree中的Drag&amp; Drop,从CentOS 6升级到CentOS 7后会崩溃。相同的硬件,相同的OpenJDK,相同的Java代码,但不同的图形驱动程序。内核命令行设置的解决方法&#34; nomodeset&#34;有帮助,但导致图形和图形差闪烁。 这是一个纯Java解决方法:
//workaround for used Drag&Drop cursors which are unsupported by graphics driver
public static void initUnsupportedCursors() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException
{
String cursors[] = new String[]{
"DnD.Cursor.CopyDrop",
"DnD.Cursor.MoveDrop",
"DnD.Cursor.LinkDrop",
"DnD.Cursor.CopyNoDrop",
"DnD.Cursor.MoveNoDrop",
"DnD.Cursor.LinkNoDrop"
};
List <String> unsupportedCursors = new ArrayList <String>();
for (String c : cursors)
{
try
{
if (Toolkit.getDefaultToolkit().getDesktopProperty(c) == null)
{
throw new Exception("Can't find cursor " + c);
}
}
catch (Exception e)
{
unsupportedCursors.add(c);
}
}
if (!unsupportedCursors.isEmpty())
{
Field propsFiled = Toolkit.class.getDeclaredField("desktopProperties");
propsFiled.setAccessible(true);
Map props = (Map) propsFiled.get(Toolkit.getDefaultToolkit());
for (String unsupportedCursor : unsupportedCursors)
{
System.out.println("Replacing unsupported " + unsupportedCursor + " by " + Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
props.put(unsupportedCursor, Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
}
}
答案 3 :(得分:1)
事实证明,它与Unity-Mir中报告的错误相关联:Java applications are missing X11 resources - XQueryBestCursor return 0,0。
从评论中,JDK版本以及旧的XMir(不再支持)负责。 无论如何,它由最后的XMir版本修复。
这将是Java中的一个错误,它无法处理Xorg 软件光标。这真是一个与Mir无关的问题。我只是 将X置于触发错误的(有效)模式。
虽然,我们可以通过实现完整来解决Java错误 XMir中的硬件光标支持...
和
XMir 1.0(旧的Xorg扩展名)现已弃用,而不是 维持或固定。它被新的&#39; Xmir&#39;取代。二进制(包 &#39; xmir&#39;)在Ubuntu 15.10 wily中引入。
和
注意:新的Xmir使用硬件光标(如果可用的话) 桌面)。因此,如果这个bug仍然存在,它只会打开 移动(Android Mir平台)。
你应该考虑升级到&#34; new&#34;版本
答案 4 :(得分:1)
我找到了解决方案。
1-编辑以下文件:
nano /etc/default/grub
2-将rhgb quiet
替换为nomodeset
。
3-在终端grub2-mkconfig -o /boot/grub2/grub.cfg
上运行
4-重启。
实际上这并没有解决问题。它只会忽略它。