【问题标题】:Clojure proxy of JComboBox and IDeref gives a java.lang.VerifyErrorJComboBox 和 IDeref 的 Clojure 代理给出 java.lang.VerifyError
【发布时间】:2023-03-16 02:19:01
【问题描述】:

在我的代码中,我这样做了:

(proxy [JComboBox IDeref] []
  (deref [] (.getSelectedItem this)))

虽然在我的机器上运行良好,但一些用户报告了以下问题:

java.lang.VerifyError: class ggo.igs.gui.widgets.proxy$javax.swing.JComboBox$IDeref$db53459f 
  overrides final method 1®­+1ú h.1®ˆû1ú h
  at java.lang.ClassLoader.defineClass1 (ClassLoader.java:-2)
    java.lang.ClassLoader.defineClass (ClassLoader.java:676)
    java.security.SecureClassLoader.defineClass (SecureClassLoader.java:124)
    java.net.URLClassLoader.defineClass (URLClassLoader.java:260)
    java.net.URLClassLoader.access$100 (URLClassLoader.java:56)
    java.net.URLClassLoader$1.run (URLClassLoader.java:195)
    java.security.AccessController.doPrivileged (AccessController.java:-2)
    java.net.URLClassLoader.findClass (URLClassLoader.java:188)
    com.sun.jnlp.JNLPClassLoader.findClass (JNLPClassLoader.java:332)
    java.lang.ClassLoader.loadClass (ClassLoader.java:317)
    java.lang.ClassLoader.loadClass (ClassLoader.java:252)
    java.lang.ClassLoader.loadClassInternal (ClassLoader.java:375)
    ggo.igs.gui.widgets$combo_box.doInvoke (widgets.clj:124)
    clojure.lang.RestFn.invoke (RestFn.java:440)

我不知道在哪里可以覆盖 final 方法,尤其是对于这个奇怪的“名称”。 有什么想法可能是错的吗?

【问题讨论】:

    标签: java swing clojure


    【解决方案1】:

    我将首先检查两个环境(您的和您的用户)上的 JDK 版本:java.lang.VerifyError 可能是您针对与运行时使用的库不同的库进行编译时的结果。

    【讨论】:

    • 是的,这是我的 1.6 和他们的计算机上的 1.5 - 但是摇摆不应该在它们之间兼容吗?
    • 它应该是二进制兼容的,但我不会赌上我的性命;) 为了安全起见,您可以将 IDE 设置为使用 Java 5 JDK 进行编译。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多