最终,我希望以下内容能够发挥作用
(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/