博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 访问 C++ 方法:JavaCPP
阅读量:6177 次
发布时间:2019-06-21

本文共 1581 字,大约阅读时间需要 5 分钟。

  JavaCPP提供了在Java中高效访问本地C++的方法。采用JNI技术实现,支持所有Java实现包括Android系统,Avian 和 RoboVM。

  JavaCPP提供了一系列的Annotation将java代码映射到C++代码,并使用一个可执行的jar包将C++代码转化为可以从JVM内。

  Maven:

  <dependency>

  <groupId>org.bytedeco</groupId>

  <artifactId>javacpp</artifactId>

  <version>0.11</version>

  </dependency>

  复制代码

  使用方法:

  C++:

  #include <string>

  namespace LegacyLibrary {

  class LegacyClass {

  public:

  const std::string& get_property() { return property; }

  void set_property(const std::string& property) { this->property = property; }

  std::string property;

  };

  }

  复制代码

  Java:

  import org.bytedeco.javacpp.*;

  import org.bytedeco.javacpp.annotation.*;

  @Platform(include="LegacyLibrary.h")

  @Namespace("LegacyLibrary")

  public class LegacyLibrary {

  public static class LegacyClass extends Pointer {

  static { Loader.load(); }

  public LegacyClass() { allocate(); }

  private native void allocate();

  // to call the getter and setter functions

  public native @StdString String get_property(); public native void set_property(String property);

  // to access the member variable directly

  public native @StdString String property(); public native void property(String property);

  }

  public static void main(String[] args) {

  // Pointer objects allocated in Java get deallocated once they become unreachable,

  // but C++ destructors can still be called in a timely fashion with Pointer.deallocate()

  LegacyClass l = new LegacyClass();

  l.set_property("Hello World!");

  System.out.println(l.property());

  }

  }

  复制代码

转载于:https://www.cnblogs.com/anjijiji/p/6265241.html

你可能感兴趣的文章
第十九章:集合视图(十七)
查看>>
BIOS
查看>>
Elasticsearch之元数据(meta-fields)介绍
查看>>
基于Django+Bootstrap框架,可视化展示内存监控信息
查看>>
Pytorch | BERT模型实现,提供转换脚本【横扫NLP】
查看>>
biostar handbook: 第七周笔记汇总+调整通知
查看>>
涨薪必备|给你一份超详细Spring Boot知识清单
查看>>
YII2 关联查询,不修改search, 使用 GridView::widget 输出
查看>>
DNS服务-了解篇
查看>>
springcloud应用程序上下文层次结构
查看>>
Apache Shiro在web开发安全技术中的应用
查看>>
继续内存优化——一脸懵逼
查看>>
每天五分钟linux(3)-pwd
查看>>
js 获取 url 查询参数
查看>>
数据价值提升新模式:数据资产管理“AIGOV五星模型”
查看>>
Linux安装jdk
查看>>
经验积累:SoapUI的使用相关--动态取得的Soap Message内容,动态匹配应答
查看>>
SMG协同办公平台规划与实践
查看>>
短视频客户端SDK设计与实现
查看>>
Sublime Text3—设置快捷键打开浏览器----转载
查看>>