首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在scala中导入自定义java类

在scala中导入自定义java类
EN

Stack Overflow用户
提问于 2014-02-20 23:17:25
回答 1查看 3.6K关注 0票数 1

我是Scala的新手,事实上,我对Java也很无知(我对我的Java知识不感兴趣)。问题是,我使用的是Java API,它只适用于Java ( Freeling )。

现在,我创建了一个java类调用分析器,它只使用一个静态的公共方法调用分析,它接受一个单词字符串(一个句子的所有部分),并返回一个字符串的java.util.ArrayList,其中每个字符串都有这个句子中每个单词的单词、引理和标记(使用freeling)。

现在,我知道您可以在scala应用程序中无缝地使用java类。我声明了这个包(命名为分析器),并将"Analyzer.java“编译成"Analyzer.class”。我的想法是将这个类"Analyzer“加载到scala中(另一次加载到scala源文件中),并从scala中使用它来查看它是否有效。

我的意思是,我想在Scala中这样做:

代码语言:javascript
复制
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

问题是,当我试图导入包时,它会给我一个错误:

代码语言:javascript
复制
scala> import analyzer.Analyzer
<console>:7: error: not found: value analyzer
   import analyzer.Analyzer

即使我用-classpath选项启动scala,指向Analyzer.class所在的目录。

这个是可能的吗?我怎么发动汽车呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-20 23:32:07

import只使名称空间的内容可用,而不需要将其限定为包。为了让编译器找到您的包,它必须在类路径上。如果将Java类打包到.jar文件中,则可以使用特殊的:cp path-to-jar命令动态地将该文件添加到REPL。或者,在启动Scala (-cp my-path)时,可以将Java类的目录放在类路径上。

由于您编写时使用了-classpath选项,所以您可能使用了错误的路径。如果您的analyzer类位于包analyzer中,则必须将路径添加到包含目录analyzer的位置。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21921840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档