java - 如何使 java 库对 clojure 可见?

标签 java clojure jvm

最终,我希望以下内容能够发挥作用

(ns grizzler.core
  (:import (com.sun.grizzly.http.embed GrizzlyWebServer)
           (com.sun.grizzly.tcp.http11 GrizzlyAdapter)))

但是,我不知道该怎么做。我要向类路径中添加内容吗?在哪里修改我的类路径,在 .bashrc 中还是在 clojure 中?

我在 http://grizzly.java.net/ 找到了 grizzly 项目。但我要下载什么?我如何安装东西?我真的不知道该怎么办。

相关:Using 3rd party java libraries, like com.jcraft.jsch, with clojure - 除了它对我来说不够详细:(

编辑:我还在project.clj中尝试了以下操作,但它不起作用:

(defproject grizzler "1.0.0-SNAPSHOT"
  :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.3.0"]
                 [com.sun.grizzly.http.core "2.1.10"]
                 [com.sun.grizzly.http.embed "2.1.10"]
                 [com.sun.grizzly.tcp.http11 "2.1.10"]])

此外,我尝试了 net.java.grizzly.http.core ,但也不起作用。

谢谢!

最佳答案

目前关于“正确”方法的共识基本上是“使用 leiningen”。 Leiningen 基本上是 Maven 的包装器并使用 Maven 存储库。大多数时候,您可以在 Maven 存储库中的某个位置找到所需的代码,但最终您会遇到需要使用 jar 文件的情况。在这种情况下,您将 jar 文件安装到本地 Maven 存储库中,该存储库位于您的主目录中,并包含构建所有项目所需的所有 jar 的副本。如果您所依赖的 jar 可以从中央存储库中获得,则此本地存储库将充当缓存,因此您不必每次都下载它们,但如果无法自动下载,您可以手动将 jar 放入本地存储库中他们。

我建议观看此video首先。

  • 仔细检查您需要的库是否已经可用
  • 下载您想要的 jar
  • download leiningen
  • 运行lein new nameOfYourProject
  • 将其添加到您的 leiningen 项目的 project.clj
  • 运行lein deps
    • 这将打印用于将 jar 文件安装到本地 Maven 存储库的完整命令
    • 运行此命令(由 leiningen 打印),您的 jar 文件应复制到 ~/.m2/... 下的正确位置
    • 再次运行lein deps以确保找到它
  • 在 .clj 文件中添加 import 语句(如上所示)
  • 成功!

调试此过程可能会因具体情况而异,但#clojure 的居民通常非常有帮助。

关于java - 如何使 java 库对 clojure 可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11024595/

相关文章:

java - 如何通过System.setProperty设置内存不受影响?

android - cordova 虚拟机初始化期间发生错误

java - 何时使用 : Java 8+ interface default method, 与抽象方法

java - Ivy、ant 和启动脚本

memory - 在 Clojure 中处理大量序列时,如何避免堆内存不足?

Clojure:将 group-by :key 与剩余键上的 select-key 链接起来

clojure - 如何在 clojure 中访问 c​​ore.cljs 中的 db.clj 方法

java - 如何返回 JOptionPane 使用的对象数组的索引以在 switch 语句中使用?

java - 使用附加 JAXB 绑定(bind)的 wsimport 期间出错

encoding - Clojure base64 编码