Java 10和JNI

时间:2019-03-19 19:45:39

标签: java java-native-interface java-module

我有这个第三方DLL文件,它似乎是使用全局名称空间编译的。自从我们使用Java8以来,在此之前还没有奏效,但是当我们迁移到Java10时,这种情况就中断了。

包含本机关键字的Java类是dllCommunication.java。在Java 8中,我们这样做:

Class.forName("dllCommunication"); 

在Java 10中,我们被迫这样做是因为默认程序包中不允许使用.class文件:

Class.forName("com.jni.dllCommunication"); 

并获得该Java unsatisfiedLink错误。

主应用程序是一个自包含的Java桌面应用程序,其中包含使用module-info.java文件的JRE。所以我的问题是,是否有一种方法可以在默认程序包中包含dllCommunication.java而无需Java10抱怨呢?

任何合理的解决方案将不胜感激。

0 个答案:

没有答案