[英]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.