Java和SWIG:将类放入包中
我遵循了关于“Swig和Java”文档的建议: 我正在编译我的代码并使用模板。我提供了一个 JavaPackageTypeMap,但SWIG没有生成正确的JNI字段 描述符。使用模板的重命名名称作为 “javapackage”类型映射: %typemap(javapackage)std::vector“your.package.here” %模板(VectorOfInt)std::vector ,但这对我不起作用 我的界面文件如下所示:Java和SWIG:将类放入包中,java,c++,namespaces,package,swig,Java,C++,Namespaces,Package,Swig,我遵循了关于“Swig和Java”文档的建议: 我正在编译我的代码并使用模板。我提供了一个 JavaPackageTypeMap,但SWIG没有生成正确的JNI字段 描述符。使用模板的重命名名称作为 “javapackage”类型映射: %typemap(javapackage)std::vector“your.package.here” %模板(VectorOfInt)std::vector ,但这对我不起作用 我的界面文件如下所示: %module moduleJava %include
%module moduleJava
%include "std_vector.i"
%include "std_wstring.i"
%typemap( javapackage ) std::vector < double > "Package";
%typemap( javapackage ) std::vector < std::wstring > "Package";
// Instantiate templates used by example
%template(DoubleVector) std::vector < double > ;
%template(StringVector) std::vector < std::wstring > ;
%pragma( java ) jniclasspackage = "Package"
%include java_file1.i
%include java_file2.i
//java_file1.i
%{
#include "header.h"
%}
%nspace Package::OtherPackage::Class;
%include "header.h"
因此,每个类都会到达正确的位置,创建文件夹并插入包指示。。。除了DoubleVector和StringVector,它们在全局范围内保持不变,并且jni签名与包不匹配
%typemap(javapackage)std::vector“Package”
有效吗?或者我做错了什么
感谢发出如下命令,将您的文件打包到特定的包中。SWIG不会创建该目录,因此请确保它事先存在
swig -java -package com.company.swig -outdir com/company/swig inteface.i