我无法从 java 包导入最终类。导入普通类效果很好。例如:
gtk-examples.snooping> (import 'org.gnome.gdk.MouseButton) org.gnome.gdk.MouseButton gtk-examples.snooping> (import 'org.gnome.gdk.ModifierType) ; Evaluation aborted. gtk-examples.snooping>
最后一次导入会产生 NoClassDefFoundError。这是更完整的输出:
Could not initialize class org.gnome.gdk.ModifierType [Thrown class java.lang.NoClassDefFoundError] Restarts: 0: [QUIT] Quit to the SLIME top level Backtrace: 0: java.lang.Class.forName0(Native Method) 1: java.lang.Class.forName(Class.java:186) 2: gtk_examples.snooping$eval2063.invoke(NO_SOURCE_FILE:1) 3: clojure.lang.Compiler.eval(Compiler.java:5424) 4: clojure.lang.Compiler.eval(Compiler.java:5415) 5: clojure.lang.Compiler.eval(Compiler.java:5391) 6: clojure.core$eval.invoke(core.clj:2382) --more--
知道发生了什么吗?
谢谢!
最佳答案
尝试导入org.gnome.gdk.ModifierType
实际上首先会出现不同的错误,然后会出现您所看到的错误。
user> (import 'org.gnome.gdk.ModifierType)
; Evaluation aborted.
org.freedesktop.bindings.FatalError:
You *must* call Gtk.init() before using anything else in java-gnome!
user> (import 'org.gnome.gdk.ModifierType)
; Evaluation aborted.
java.lang.NoClassDefFoundError: Could not initialize class org.gnome.gdk.ModifierType
每the docs ,org.gnome.gtk.Gtk/init
看起来像:
public static void init(String[] args)
因此重新启动 JVM 并尝试以下操作:
user> (org.gnome.gtk.Gtk/init (make-array String 0))
nil
user> (import 'org.gnome.gdk.ModifierType)
org.gnome.gdk.ModifierType
似乎有效。
关于clojure - 导入 final类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3879721/