【问题标题】:How to use JNI with gradle? [duplicate]如何将 JNI 与 gradle 一起使用? [复制]
【发布时间】:2021-10-14 13:00:32
【问题描述】:

我按照tutorial 将 JNI 与 gradle 项目一起使用。

但是,我有这个ERROR

然后,我按照project 将 jni 与 gradle 项目一起使用。

但是,我有这个ERROR

我想在 gradle 项目中使用 JNI 来为 windows、linux 和 mac 构建原生库。

如何将 JNI 与 gradle 一起使用?

用gradle给出一个简单的JNI教程。

【问题讨论】:

标签: java gradle java-native-interface


【解决方案1】:

Gradle Java 插件 - 默认情况下 - generates header files 用于任何包含本机方法的 Java 文件。

默认输出路径是${project.buildDir}/generated/sources/headers/${sourceDirectorySet.name}/${sourceSet.name},所以对于从你的第一个链接链接的gcj项目,我得到以下文件:

./build/generated/sources/headers/java/main/HelloWorld.h

为了让 Gradle cpp 插件找到它,您需要将其包含搜索路径设置为上述路径的(一部分)。

【讨论】:

  • 我是 JNI 新手。我还是听不懂你在说什么? Gradle 文件:github.com/vladsoroka/GradleJniSample/blob/master/build.gradle 如果在 gradle 中运行“测试”,则输出为“Helloworld”。但是,我的疑问是如何在 Main 类中运行它。项目:github.com/vladsoroka/GradleJniSample 和我的问题:github.com/vladsoroka/GradleJniSample/issues/4
  • 正常运行程序时还需要设置java.library.path属性。
  • 如何设置java.library.path属性?
  • 我在下面尝试了这个,但同样的错误发生task local { run { systemProperty "java.library.path", "local" } } bootRun.mustRunAfter local 然后运行 ​​gradle 命令为:gradle bootRun local 项目链接:github.com/vladsoroka/GradleJniSample
  • 对不起,您的问题与JNI无关,除了需要设置这一属性。我尽力帮助您,但我不知道如何解决潜在的 Gradle 问题。
猜你喜欢
  • 2015-10-23
  • 2013-12-24
  • 2017-11-09
  • 2011-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-03
相关资源
最近更新 更多