我正在尝试 frege,并且我正在努力尝试使用一些本机 Java 库。
我正在尝试使用 leiningen 插件和 Joda time。显然 lein 插件不能正确地查看 fregec 的类路径,或者可能与这种差异有关:
java -jar ~/Downloads/frege3.22.524-gcc99d7e.jar -fp ~/.m2/repository/joda-time/joda-time/2.7/joda-time-2.7.jar src/Hello.fr
正如预期的那样,将能够找到Joda,而
java -cp ~/.m2/repository/joda-time/joda-time/2.7/joda-time-2.7.jar -jar ~/Downloads/frege3.22.524-gcc99d7e.jar src/Hello.fr
将失败
`org.joda.time.Years` is not a known java class
这不应该发生,因为根据维基,这不应该发生,因为
正在运行的 JVM 的当前类路径加上目标目录总是在类路径上。
尽管如此,即使在手动设置之后-fp
,此代码也无法编译:
module Hello where
data JodaYears = native org.joda.time.Years where
pure native years :: Int -> JodaYears
pure native getYears org.joda.time.Years.getYears :: JodaYears -> Int
-- ^ I tried both with and without this
错误是
Instance method or getter must be applied to java reference type.
但是我使用的唯一实例方法(getYears)将引用类型作为输入(JodaYears
)......我什至尝试过org.joda.time.Years
,但编译仍然失败
感谢任何可能对此有所了解的人