1
我想从java调用C#函数使用jni4net在Windows 32位操作系统中正常工作但是当我尝试从64位操作系统加载相同的C#dll时gettig这个错误从Java中使用jni4net从64位调用C#时的错误
C:\Program Files (x86)\csharp\jni4net.n.w64.v20-0.8.6.0.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.load0(Unknown Source)
at java.lang.System.load(Unknown Source)
at net.sf.jni4net.CLRLoader.init(CLRLoader.java:47)
,这里是我的代码
public class JNIFromC
{
private static String BRDIGE_INIT_URL="C:\\Program Files (x86)\\csharp\\jni4net.n.w64.v20-0.8.6.0.dll";
private static String JNI_URL="C:\\Program Files (x86)\\csharp\\csharp.j4n.dll";
public static void main(String[] args) {
Csharp cSharp=new getMyFunctionsFromCSharp();
}
public static Csharp getMyFunctionsFromCSharp() throws IOException {
Bridge.setClrVersion("v20");
Bridge.init(new File(BRDIGE_INIT_URL));
File shardFile = new File(JNI_URL);
Bridge.LoadAndRegisterAssemblyFrom(shardFile);
return new Csharp();
}
}
什么可能我是做错了
错误是非常明显的,它声称你是在32位操作系统上,或者你正在使用32位版本的Java来运行该程序。如果你想加载一个64位版本的dll,确保你的操作系统是64位,你的java也是如此。 – user2494817
@ user2494817当我尝试在64位操作系统上安装64位Java时,由于应用程序是一个小程序,因此浏览器无法识别java插件。 –
浏览器还有64位吗? – user2494817