Java 运行jar文件时,NoSuchFieldException ForceHeavweightPoupKey

Java 运行jar文件时,NoSuchFieldException ForceHeavweightPoupKey,java,swing,Java,Swing,当我从netbeans运行项目时,我正在为我的项目使用netbeans。一切正常。但是,当双击构建jar文件运行项目时,我没有得到SuchFieldException ForceHeavyweightPoupKey 我想我应该再提一件事,如果jar文件是从cmd ForceHeavweightPopupkey运行的,那么它就可以正常工作了 我在用强力重量级的PoupKey做JComboBox。。这是我在网上找到的代码 try { Class cls = Cl

当我从netbeans运行项目时,我正在为我的项目使用netbeans。一切正常。但是,当双击构建jar文件运行项目时,我没有得到SuchFieldException ForceHeavyweightPoupKey

我想我应该再提一件事,如果jar文件是从cmd ForceHeavweightPopupkey运行的,那么它就可以正常工作了

我在用强力重量级的PoupKey做JComboBox。。这是我在网上找到的代码

try {                   
Class cls = Class.forName("javax.swing.PopupFactory");
    javax.swing.PopupFactory ob=new javax.swing.PopupFactory();
Field field = cls.getDeclaredField("forceHeavyWeightPopupKey");
field.setAccessible(true);
    combo.putClientProperty(field.get(""), Boolean.TRUE);
    //combo.putClientProperty(new StringBuffer("_force_heavy_weight_popup_"), Boolean.TRUE);
} catch (Exception e1) {add(new JLabel(e1.toString()));

}

为什么需要强制重量级PoupKey?如果它是私有的,通常有一个很好的理由。你的计算机上有多个JDK吗?双击JAR可能会在JDK 1.7中运行它,其中
PopupFactory.ForceHeavweightPopupKey
似乎已移动到
ClientPropertyKey.PopupFactory\U FORCE\U Heavweight\U POPUP
。另外,不要将空字符串
传递到
字段。get()
(无
String
实例将有一个名为
forceHeavweightPopupKey
)的字段,传入
null
,它告诉
get()
您正在寻找一个静态字段(它是
PopupFactory.forceHeavweightPopupKey
)。我已经用null代替空字符串,但这也不起作用。还有其他选择吗?