我正在使用lein进行Clojure项目,我尝试使用clojars中的libgdx包。从该软件包安装的jar文件包含一个lib文件夹,其中包含多个用于gdx的jar文件。如何在clojure中访问一罐罐子?
$罐子TF组织/ clojars/AMU/libgdx/0.92/libgdx-0.9.2.jar
lib/
lib/gdx-openal.jar
lib/gdx-backend-jogl-natives.jar
lib/gdx-backend-android.jar
lib/gdx-backend-lwjgl.jar
lib/gdx-backend-lwjgl-natives.jar
lib/gdx.jar
lib/gdx-natives.jar
lib/gdx-backend-jogl.jar
我还增加了以下依赖到我project.clj:[org.clojars.amu/libgdx“0.9.2”]
我不确定的是我如何使用:use和:require关键字访问libgdx jar中的每个jar包?
(ns game.core
(:import (libgdx.gdx Game)) <- does not work
我已经把一个公共仓库的雷音项目了GitHub上的位置:Project Link
,以便它可以作为一个例子他人一旦我有它解决了我会更新该项目。
我不是Java专家,但看起来,这Clojure的类装载器并不见嵌入式罐子... – 2012-08-11 08:01:23
JVM的默认类加载器不支持嵌套的罐子。有第三方类加载器,如[One-JAR](http://one-jar.sourceforge.net/)支持嵌套jar,但包括第三方类加载器似乎有点矫枉过正。你为什么不解压libgdx jar,然后把每个嵌套jar分别推送给Clojars? – DaoWen 2012-08-12 06:02:40
这个问题的一个常见方法是创建一个[uberjar](https://github.com/technomancy/leiningen/blob/master/src/leiningen/uberjar.clj) – skuro 2012-08-13 06:11:38