我有这个第三方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抱怨呢?
任何合理的解决方案将不胜感激。