c#winRT中的类型初始值设定项异常ikvm weka
我正在开发一个Windows8应用程序,我正在使用我的c#代码中的weka.dll和ikvm。 我一直使用类型初始值设定项java.nio.charset.standardCharset 源代码来自IKVM.OpenJDK.util。至于内部异常,它来自mscorlibc#winRT中的类型初始值设定项异常ikvm weka,c#,weka,ikvm,C#,Weka,Ikvm,我正在开发一个Windows8应用程序,我正在使用我的c#代码中的weka.dll和ikvm。 我一直使用类型初始值设定项java.nio.charset.standardCharset 源代码来自IKVM.OpenJDK.util。至于内部异常,它来自mscorlib kmeans = new weka.clusterers.SimpleKMeans(); weka.clusterers.ClusterEvaluation eval = new weka.clusterers.
kmeans = new weka.clusterers.SimpleKMeans();
weka.clusterers.ClusterEvaluation eval = new weka.clusterers.ClusterEvaluation();
kmeans.setNumClusters(numCluster);
kmeans.setMaxIterations(nbrItr);
kmeans.setPreserveInstancesOrder(true);
Data = new weka.core.Instances(new java.io.BufferedReader(new java.io.FileReader(filePath)));
如果我尝试检索数据numInstances,它会起作用,但当我使用数据构建集群时,我在这里遇到一个异常:
kmeans.buildClusterer(Data); //exception
eval.setClusterer(kmeans);
eval.evaluateClusterer(Data);
有关此异常的更多详细信息:
System.TypeInitializationException was unhandled by user code
HResult=-2146233036
Message=The type initializer for 'java.nio.charset.StandardCharsets' threw an exception.
Source=IKVM.OpenJDK.Util
TypeName=java.nio.charset.StandardCharsets
StackTrace:
at java.util.zip.ZipFile..ctor(File file, Int32 mode)
at java.util.zip.ZipFile..ctor(String name)
at IKVM.Internal.VirtualFileSystem.Initialize()
at IKVM.Internal.VirtualFileSystem.GetVfsEntry(String name)
at IKVM.Internal.VirtualFileSystem.GetBooleanAttributes(String path)
at IKVM.NativeCode.java.io.Win32FileSystem.getBooleanAttributes(Object _this, File f)
at java.io.Win32FileSystem.getBooleanAttributes(File )
at java.io.File.isDirectory()
at java.io.File.toURI()
at IKVM.Internal.AssemblyClassLoader.MakeResourceURL(Assembly asm, String name)
at IKVM.Internal.AssemblyClassLoader.AssemblyLoader.FindResources(String name)
at IKVM.Internal.AssemblyClassLoader.<GetResourcesImpl>d__0.MoveNext()
at IKVM.NativeCode.ikvm.runtime.AssemblyClassLoader.getResource(ClassLoader classLoader, Assembly assembly, String name)
at ikvm.runtime.AssemblyClassLoader.getResource(ClassLoader , Assembly , String )
at ikvm.runtime.AssemblyClassLoader.getResource(String name)
at java.lang.ClassLoader.getResourceAsStream(String name)
at weka.core.Utils.readProperties(String resourceName)
at weka.core.Capabilities..ctor(CapabilitiesHandler owner)
at weka.clusterers.AbstractClusterer.getCapabilities()
at weka.clusterers.SimpleKMeans.getCapabilities()
at weka.clusterers.SimpleKMeans.buildClusterer(Instances data)
at App1.Clustering.kMeans.ClusteringKmeans()
at App1.Views.ClusteringPage.Clustering_Click(Object sender, RoutedEventArgs e)
InnerException: System.InvalidOperationException
HResult=-2146233079
Message=The API 'System.Exception.get_TargetSite()' cannot be used on the current platform. See http://go.microsoft.com/fwlink/?LinkId=248273 for more information.
Source=mscorlib
StackTrace:
at System.Reflection.Emit.DynamicILGenerator.GetTokenFor(RuntimeMethodInfo rtMeth)
at System.Reflection.Emit.DynamicILGenerator.Emit(OpCode opcode, MethodInfo meth)
at IKVM.Internal.CodeEmitter.RealEmitOpCode(OpCode opcode, Object arg)
at IKVM.Internal.CodeEmitter.OpCodeWrapper.RealEmit(Int32 ilOffset, CodeEmitter codeEmitter, Int32& lineNumber)
at IKVM.Internal.CodeEmitter.DoEmit()
at IKVM.NativeCode.sun.reflect.ReflectionFactory.FastConstructorAccessorImpl..ctor(Constructor constructor)
at IKVM.NativeCode.sun.reflect.ReflectionFactory.newConstructorAccessor0(Object thisFactory, Object constructor)
at sun.reflect.ReflectionFactory.newConstructorAccessor0(Constructor )
at sun.reflect.ReflectionFactory.newConstructorAccessor(Constructor c)
at java.lang.reflect.Constructor.acquireConstructorAccessor()
at java.lang.reflect.Constructor.newInstance(Object[] initargs, CallerID )
at java.lang.Class.newInstance0(CallerID )
at java.lang.Class.newInstance(CallerID )
at sun.nio.cs.FastCharsetProvider.lookup(String )
at sun.nio.cs.FastCharsetProvider.charsetForName(String charsetName)
at java.nio.charset.Charset.lookup2(String )
at java.nio.charset.Charset.lookup(String )
at java.nio.charset.Charset.forName(String charsetName)
at java.nio.charset.StandardCharsets..cctor()
InnerException:
用户代码未处理System.TypeInitializationException异常
HResult=-21462036
Message=java.nio.charset.StandardCharsets的类型初始值设定项引发了异常。
Source=IKVM.OpenJDK.Util
TypeName=java.nio.charset.StandardCharsets
堆栈跟踪:
位于java.util.zip.ZipFile..ctor(文件,Int32模式)
位于java.util.zip.ZipFile..ctor(字符串名称)
在IKVM.Internal.VirtualFileSystem.Initialize()中
位于IKVM.Internal.VirtualFileSystem.GetVfsEntry(字符串名)
位于IKVM.Internal.VirtualFileSystem.GetBooleanAttributes(字符串路径)
位于IKVM.NativeCode.java.io.Win32FileSystem.getBooleanAttributes(对象_this,文件f)
位于java.io.Win32FileSystem.getBooleanAttributes(文件)
在java.io.File.isDirectory()中
在java.io.File.toURI()中
在IKVM.Internal.AssemblyClassLoader.MakeSourceUrl(程序集asm,字符串名)
位于IKVM.Internal.AssemblyClassLoader.AssemblyLoader.FindResources(字符串名称)
在IKVM.Internal.AssemblyClassLoader.d_u0.MoveNext()中
在IKVM.NativeCode.IKVM.runtime.AssemblyClassLoader.getResource(ClassLoader ClassLoader,AssemblyAssembly,字符串名称)
在ikvm.runtime.AssemblyClassLoader.getResource(ClassLoader,Assembly,String)
在ikvm.runtime.AssemblyClassLoader.getResource(字符串名称)处
位于java.lang.ClassLoader.getResourceAsStream(字符串名称)
位于weka.core.Utils.readProperties(字符串resourceName)
在weka.core.Capabilities..ctor(CapabilitieHandler所有者)
在weka.cluster.abstractcluster.getCapabilities()上
在weka.clusters.SimpleKMeans.getCapabilities()中
在weka.clusters.SimpleKMeans.buildcluster(实例数据)
在App1.Clustering.kMeans.ClusteringKmeans()中
在App1.Views.ClusteringPage.Clustering\u单击(对象发送方,RoutedEventTarget e)
InnerException:System.InvalidOperationException
HResult=-2146233079
Message=API“System.Exception.get_TargetSite()”不能在当前平台上使用。看见http://go.microsoft.com/fwlink/?LinkId=248273 了解更多信息。
Source=mscorlib
堆栈跟踪:
位于System.Reflection.Emit.DynamicILGenerator.getToken(RuntimeMethodInfo rtMeth)
位于System.Reflection.Emit.DynamicILGenerator.Emit(操作码操作码,MethodInfo meth)
在IKVM.Internal.CodeEmitter.RealEmitOpCode(操作码操作码,对象参数)
在IKVM.Internal.CodeEmitter.OpCodeWrapper.RealEmit(Int32 ilOffset、CodeEmitter CodeEmitter、Int32和lineNumber)
在IKVM.Internal.CodeEmitter.DoEmit()处
在IKVM.NativeCode.sun.reflect.ReflectionFactory.FastConstructor AccessorImpl..ctor(构造函数)上
在IKVM.NativeCode.sun.reflect.ReflectionFactory.newConstructorAccessor0(对象thisFactory,对象构造函数)
在sun.reflect.ReflectionFactory.newConstructorAccessor0(构造函数)上
在sun.reflect.ReflectionFactory.newConstructorAccessor(构造函数c)
在java.lang.reflect.Constructor.acquireConstructorAccessor()中
位于java.lang.reflect.Constructor.newInstance(对象[]initargs,CallerID)
位于java.lang.Class.newInstance0(CallerID)
位于java.lang.Class.newInstance(CallerID)
位于sun.nio.cs.FastCharsetProvider.lookup(字符串)
位于sun.nio.cs.FastCharsetProvider.charsetForName(字符串charsetName)
位于java.nio.charset.charset.lookup2(字符串)
位于java.nio.charset.charset.lookup(字符串)
位于java.nio.charset.charset.forName(字符串charsetName)
在java.nio.charset.StandardCharsets..cctor()中
内部异常:
类型初始值设定项异常经常从静态类型成员的静态构造函数/初始化中抛出。查看(1)内部异常和(2)其堆栈跟踪应提供有关原因的更多信息。请将这些信息添加到您的问题中。我添加了这些信息,但我认为可变的“数据”仍然为空,在从arff文件检索实例时是否有遗漏或应该添加的内容?我发现这向我表明,您所要求的可能是不可能的。引述:“老实说,我认为这是毫无希望的,除非你使用非常有限的Java子集并愿意投入大量时间。”所以问题在于ikvm,不能在windows应用商店中使用它!