开源项目社区 当前位置 :
ossean.trustie.net 主页 > 开源项目社区 > JavaCPP
0?1603292283 JavaCPP 讨论数:  16 创建时间:  2015-07-05 项目来源:  oschina
概述:    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());     } ...
Tags 标签:
相关软件推荐
  • Apache Commons Codec

    apache|:|The codec package contains simple encoder and decod ...
  • Apache Maven

    apache|:|Maven is a project development management and compr ...
  • Android

    sourceforge|:|No description Android Web Site ...
  • Android

    sourceforge|:|No description Android Web Site ...
  • ffmpeg

    oschina|:|   FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了 ...