TypeInitializationException未处理 - 使用IKVM的OpenNLP

时间:2013-02-27 17:46:49

标签: c# java ikvm

我正在使用IKVM在C#中使用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 Charsets dll,但它仍无效。

1 个答案:

答案 0 :(得分:1)

确保所有IKVM.OpenJDK。*。dll文件都在您的应用程序bin目录中。 Visual Studio并不总是复制所有引用的程序集(如果它们没有“使用”)。

另一个建议是尝试打印完整的异常(从Java的角度来看)。这就是这样的:

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

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

这应该提供有关TypeInitializationException的根本原因的更多信息。