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