Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java和SWIG:将类放入包中_Java_C++_Namespaces_Package_Swig - Fatal编程技术网

Java和SWIG:将类放入包中

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

我遵循了关于“Swig和Java”文档的建议:

我正在编译我的代码并使用模板。我提供了一个 JavaPackageTypeMap,但SWIG没有生成正确的JNI字段 描述符。使用模板的重命名名称作为 “javapackage”类型映射:

%typemap(javapackage)std::vector“your.package.here”

%模板(VectorOfInt)std::vector

,但这对我不起作用

我的界面文件如下所示:

%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