[英]Import custom java class in scala REPL
我是Scala的新手,事实上,我对Java也一无所知(并且我不希望对Java知识有任何更深的了解)。 问题是我使用的Java API仅适用于Java(Freeling Java API)。
现在,我创建了一个Java类调用分析器,其中仅包含一个静态公共方法调用analyst,该分析接受一个字符串的单词(句子的所有部分),并返回String的java.util.ArrayList,其中每个字符串都有一个单词,这个句子中每个单词的引理和标签(使用自由化)。
现在,我知道您可以在scala应用程序内无缝使用Java类。 我声明了程序包(名为分析器),并将“ Analyzer.java”编译为“ Analyzer.class”。 我的想法是将此类“ Analyzer”加载到scala REPL中(另一次加载到scala源文件中),并从scala REPL中使用它来查看其是否有效。
我的意思是,我想在Scala REPL中执行以下操作:
scala> import analyzer.Analyzer
scala> val result: java.util.ArrayList[String] = Analyzer.analyze("The cat eats fish")
scala> println(result.get(0))
The the DT
问题是,当我尝试导入软件包时,它给我一个错误:
scala> import analyzer.Analyzer
<console>:7: error: not found: value analyzer
import analyzer.Analyzer
即使我使用-classpath选项启动scala,也指向了Analyzer.class所在的目录。
这可能吗? 我该怎么办?
import
仅使名称空间的内容可用,而无需使用包对其进行限定。 为了使编译器能够找到您的程序包,它必须位于类路径中。 如果将Java类打包为.jar
文件,则可以使用特殊的:cp path-to-jar
命令将该文件动态添加到REPL。 另外,您可以在启动Scala( -cp my-path
)时将Java类的目录放在类路径中。
自编写以来,您使用了-classpath
选项,也许您使用了错误的路径。 如果Java类在包analyzer
,则必须将路径添加到包含目录analyzer
的位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.