【问题标题】:Play Scala - Native access玩 Scala - 本机访问
【发布时间】:2015-12-17 16:59:05
【问题描述】:

我正在使用 Scala 语言的 Play 框架开发一个 Web 应用程序。在我的应用程序中,我必须访问用 C++ 编写并使用 swig 转换为 .so 的本机方法。

我的目标是从 Controller 类调用 .so 文件中的本地方法。我在互联网上搜索过,但没有得到任何相关文档。

我看到了一些 scala 语言使用的链接。

https://code.google.com/p/scala-native-access/ https://code.google.com/p/bridj/wiki/Download#Specialized_subsets_(smaller_JARs_!) https://github.com/xudongyang/scala-native-access

但他们没有提到在 Play 框架中如何使用它。

任何人都可以拥有 Play scala 本机访问的文档吗? 任何人都可以有相同的示例应用程序吗?

【问题讨论】:

    标签: c++ scala playframework swig


    【解决方案1】:

    与任何 JVM 语言一样,JNA/JNI 为您提供本机访问。请注意,由于 Play 使用类加载器,您需要确保从同一个类访问。见fail to load a native library using activator (Play Framework)

    【讨论】:

      【解决方案2】:

      这通常很难回答。玩!只是一个 Scala 库和框架,任何允许您在 Scala 中使用本机调用的工具都可以与 play 类似地工作。从您指向的第一个链接中,有与 SBT(Scala 构建工具)集成的说明,该工具还管理您的 Play 框架。您需要对他们提到的 build.sbt 文件进行更改,您可以在 Play 项目文件夹的顶层找到该文件。

      【讨论】:

      • 感谢您的回复。我确实遵循了第一个链接中提到的步骤。但我收到以下错误:java.lang.UnsatisfiedLinkError: Unable to load library 'ExampleString': Native library (darwin/libExampleString.dylib) not found in resource path ([file:/Hubino/Play_Framework/BL/bl_aia/target/ scala-2.10/classes/]) 但是我已经将“libExampleString.so”文件放在了 lib 文件夹中。
      猜你喜欢
      • 2012-05-13
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-04
      • 1970-01-01
      相关资源
      最近更新 更多