2013-02-27 81 views
0

我在使用IKVM的C#中使用opennlp工具。我寫以下代碼:TypeInitializationException未處理 - 使用IKVM的OpenNLP

string modelpath = @"D:\models\en-sent.bin"; 
java.io.FileInputStream modelInpStream = new java.io.FileInputStream(modelpath); 
SentenceModel model = new SentenceModel(modelInpStream); 
SentenceDetectorME sentenceDetector = new SentenceDetectorME(model); 

,但它引起了線TypeInitializationException:

SentenceModel model = new SentenceModel(modelInpStream); 

的異常消息:

TypeInitializationException了未處理
關於「的Java的類型初始.nio.charset.StandardCharsets'拋出了一個異常。

我已經添加了IKVM字符集但是仍然無法工作。

回答

1

確保所有IKVM.OpenJDK。* .dll文件都位於您的應用程序bin目錄中。 Visual Studio並不總是複製所有引用的程序集(如果它們未被「使用」)。

另一個建議是嘗試打印完整的異常(從Java角度來看)。這是這樣的:

using ikvm.extensions; // make the Exception extension methods available 

try { 
    ... 
} catch (Exception x) { 
    x.printStackTrace(); 
} 

這應該提供有關TypeInitializationException的根本原因的更多信息。

+0

他們已經在那裏。謝謝你的時間! – yaKashif 2013-02-28 17:02:55

+0

您使用的是什麼版本的IKVM?您的系統區域設置是什麼? – 2013-03-02 09:20:30

+0

IKVM 7.2.4630.5及其英文(美國) – yaKashif 2013-03-02 16:25:54