如何编译SNA(Scala Native Access)



我是Scala和Java领域的新手,所以请原谅我这个简单的问题。

在我的项目中,我想使用本机库,它是硬件设备的接口。我正在尝试编译SNA(Scala Native Access),但我做不到。

我将SNA源下载到SNA文件夹,将JNA jar下载到JNA文件夹下一张cd到D:\sna\src\com\sun\jna\java,并尝试使用以下命令进行编译:

javac-cp d:\JNA\JNA-4.0.0.jar Structure.java

它给了我以下错误:

Structure.java:1050: error: cannot find symbol
            if (m.getSize() < requiredSize) {
                 ^
  symbol:   method getSize()
  location: variable m of type Memory
Structure.java:1287: error: cannot find symbol
                StructField sf = ((Union)ref).biggestField;
                                             ^
  symbol:   variable biggestField
  location: class Union
Note: Structure.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 errors

国民账户体系是否得到作者的支持?是否与实际版本的JNA(4.0.0)兼容?

我正在Windows7 64位上尝试此步骤。

据我所知,只有JNA中的Structure与Scala类不兼容。因此,如果你不想修补JNA,你可以用Java重写Scala类,并将Java类(它扩展了Structure)实例传递到你的本地函数中。

最新更新