【发布时间】:2019-05-09 17:35:38
【问题描述】:
我尝试使用 Java 代码中的 .NET DLL,tsMemberFunctions.DLL 已成功加载,但代码无法调用实际函数。
参见下面的 sn-p:
public class tsMemberFunctions {
public native void GetMemberJSONSample();
static {
System.loadLibrary("tsMemberFunctions");
System.out.println("Loaded");
}
public static void main(String[] args) {
new tsMemberFunctions().GetMemberJSONSample();
}
}
在执行上述方法时出现以下错误:
Loaded
Exception in thread "main" java.lang.UnsatisfiedLinkError: tsMemberFunctions.GetMemberJSONSample()V
at tsMemberFunctions.GetMemberJSONSample(Native Method)
at tsMemberFunctions.main(tsMemberFunctions.java:12)
如果我遗漏了代码中的任何内容或任何不正确的地方,有人可以告诉我,或者为这个用例建议更好的替代方案。 TIA。
【问题讨论】:
-
为什么需要原生库来获取 JSON?我会弄清楚如何进行 HTTP 调用并以这种方式获取它。本机代码不是您可以选择的最便携的东西。
-
你好,你可以忽略函数名,这个sn-p的主要目的是从dll文件中调用一个当前代码没有发生的方法。
-
我的担忧仍然存在。你应该想别的办法。如果必须阅读,请阅读:docs.oracle.com/javase/8/docs/technotes/guides/jni
标签: java java-native-interface jni4net