我正在使用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,但它仍无效。
答案 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的根本原因的更多信息。