我正在尝试在 Windows 上使用 Java 中的 Joda Time。我已经下载了 Joda Time 1.2 并将 JAR 放在我的 CLASSPATH 中:
PS D:\Java\Jars> $env:CLASSPATH
.;C:\Program Files\Java\jre6\lib\ext\QTJava.zip;D:\Java\Jars\joda-time-2.1.jar
以下 Java 代码完美运行:
import org.joda.time.*;
class Foo {
public static void main (String[] args) {
System.out.println("Hello, world");
DateTime d = new DateTime();
DateTime b = new DateTime(1981,12,25,0,0);
Period p = new Period(b,d);
System.out.println(p.toString());
}
}
但是,当我尝试从脚本语言导入 joda time 时,我收到 ClassNotFound 错误。
杰通:
PS D:\Java\Jars> java -jar .\jython.jar
Jython 2.5.2 (Release_2_5_2:7206, Mar 2 2011, 23:12:06)
[Java HotSpot(TM) Client VM (Sun Microsystems Inc.)] on java1.6.0_31
Type "help", "copyright", "credits" or "license" for more information.
>>> from org.joda.time import DateTime
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named joda
>>> import os
>>> os.getenv("CLASSPATH")
'.;C:\\Program Files\\Java\\jre6\\lib\\ext\\QTJava.zip;D:\\Java\\Jars\\joda-time-2.1.jar'
Clojure:
PS D:\Java\Jars> java -jar .\clojure-1.4.0.jar
Clojure 1.4.0
user=> (import (org.joda.time DateTime Period))
ClassNotFoundException org.joda.time.DateTime java.net.URLClassLoader$1.run (:-1)
我如何诊断这里出了什么问题?大概有一些特定于脚本环境的东西导致了这个问题。我知道 Python,但我对 Jython 的 Java 互操作方面不是很熟悉。除了设置上述测试之外,我对 Clojure 知之甚少。
Jython 中的类路径看起来不错,如图所示。