簡體   English   中英

在Scala REPL中導入自定義Java類

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM