在Clojure中导入Java类

时间:2010-06-24 15:36:16

标签: clojure

我似乎做错了什么。我已经从git构建了clojure,并因此调用它:

java -cp clojure.jar clojure.main

我得到了repl,然后输入:

(import 'java.lang.string)

我得到了:

java.lang.ClassNotFoundException: java.lang.string (NO_SOURCE_FILE:1)

我正在尝试使用lang.string,因为我认为它必须存在于类路径的某个地方。我尝试过其他图书馆,都没有多少运气。我做错了什么?

3 个答案:

答案 0 :(得分:14)

String应该大写,这就是全部。

user> (import 'java.lang.String)
java.lang.String

java.lang中的所有内容都已导入并默认可用,因此您无需执行此操作。

答案 1 :(得分:8)

在非repl练习中,可能包含Java类的最佳方法是ns宏。

(ns foo.bar
  (:refer-clojure :exclude [ancestors printf])
  (:require (clojure.contrib sql sql.tests))
  (:use (my.lib this that))
  (:import (java.util Date Timer Random)
           (java.sql Connection Statement))) 

答案 2 :(得分:2)

Bleh,我想我找到了它。首先,语法应该是:

(import java.lang.String)

还要注意它的字符串不是字符串。