C# 未处理TypeInitializationException-使用IKVM打开NLP
我在C中使用opennlp工具#使用IKVM。我编写了以下代码:C# 未处理TypeInitializationException-使用IKVM打开NLP,c#,java,ikvm,C#,Java,Ikvm,我在C中使用opennlp工具#使用IKVM。我编写了以下代码: string modelpath = @"D:\models\en-sent.bin"; java.io.FileInputStream modelInpStream = new java.io.FileInputStream(modelpath); SentenceModel model = new SentenceModel(modelInpStream); SentenceDetectorME sentenceDetecto
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字符集dll,但仍然不起作用。确保所有IKVM.OpenJDK.*.dll文件都在应用程序bin目录中。Visual Studio并不总是复制所有引用的程序集(如果它们未“使用”) 另一个建议是尝试打印完整的异常(从Java角度)。事情是这样的:
using ikvm.extensions; // make the Exception extension methods available
try {
...
} catch (Exception x) {
x.printStackTrace();
}
这将提供有关TypeInitializationException的根本原因的更多信息。您使用的是什么版本的IKVM,您的系统语言环境设置是什么?IKVM 7.2.4630.5及其英文(美国)Hmm。您能否尝试捕获异常,然后将其打印为Java异常?我将编辑我的答案以添加该建议。这是您在opennlp.tools.util.model.BaseModel..ctor(String componentName,InputStream in)的opennlp.tools.sentdetect.SentenceModel..ctor(InputStream in)的Parser.MainPage.sentdetect中寻找的java.util.zip.ZipInputStream....(InputStream in)吗(Object sender,RoutedEventArgs e)在c:\Users\MuhammadKashif\Documents\Visual Studio 2012\Projects\Parser\Parser\MainPage.xaml.cs中:第55行否,您确实需要完整的Java堆栈跟踪。它包括原始异常(TypeInitializationException决不是问题的原因,它是在类型初始值设定项运行时发生的异常的结果)。