Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.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 C++;在SWIG接口上找不到类_Java_C++_Swig - Fatal编程技术网

Java C++;在SWIG接口上找不到类

Java C++;在SWIG接口上找不到类,java,c++,swig,Java,C++,Swig,各位早上好, 我发现麻烦是为C++制作一个Switg接口。我有几个.cpp和.h文件,其中我只想为几个创建一个接口(我将在Java代码中使用),因此我的.I文件看起来像: /* File : AlgoritmoElectrico.i */ %module alg /* Header files that are referred in the ones I want to create the interface with */ %{ #include "AlgoritmoElectrico.

各位早上好,

我发现麻烦是为C++制作一个Switg接口。我有几个.cpp和.h文件,其中我只想为几个创建一个接口(我将在Java代码中使用),因此我的.I文件看起来像:

/* File : AlgoritmoElectrico.i */
%module alg

/* Header files that are referred in the ones I want to create the interface with */
%{
#include "AlgoritmoElectrico.h"
#include "Proyecto.h"
#include "Indice.h"

/* ... I skipped a few to make it shorter ... */

#include "ParserTime.h"
%}

/* Header files of classes I want to use in Java */
%include "AlgoritmoElectrico.h"
%include "AlgoritmoElectrico.h"
因此,我运行了
swig-c++-java algoritmoelectrio.I
,得到了几个.java文件,加上.cxx包装器,我用
javac*.java
编译了所有的.java文件,并用本机代码和包装器代码创建了.So库

我的Java代码如下所示:

package mr;

/* ... Stuff ... */

public class MRAlgoritmo {

    public static class Map extends Mapper<LongWritable, Text, IntWritable, Text> {
        public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
            // Obtiene instante y circulaciones
            Pattern pattern = Pattern.compile("\t[ ||| ]"); // FIXME revisar regex
            String[] info = pattern.split(value.toString());

            // Captura datos de proyecto
            System.loadLibrary("algoritmo");
            Proyecto proyecto = new Proyecto("Proyecto1");
            proyecto.ReadFile("infraestructura");
            proyecto.getParametros().setIntervalo(1);

            // Ejecuta algortimo con datos de circulaciones
            AlgoritmoElectrico algoritmo = new AlgoritmoElectrico(proyecto);
            String [] resultados = algoritmo.Ejecutar(info);

            /* ... stuff ... */
        }    
    } 



     public static void main(String[] args) throws Exception {
        /* ... stuff not related with the above, working with Hadoop MR ... */
     }

}
包mr;
/* ... 东西*/
公共类MRAlgoritmo{
公共静态类映射扩展映射器{
公共void映射(LongWritable键、文本值、上下文上下文)引发IOException、InterruptedException{
//闭合瞬时y循环
Pattern=Pattern.compile(“\t[| | |]]”;//FIXME revisar正则表达式
String[]info=pattern.split(value.toString());
//普罗耶克托曼陀罗酒店
加载库(“算法”);
Proyecto Proyecto=新的Proyecto(“Proyecto1”);
proyecto.ReadFile(“基础结构”);
proyecto.getParameteros().setIntervalo(1);
//循环数据算法
AlgoritmoElectrico algoritmo=新的AlgoritmoElectrico(proyecto);
字符串[]resultados=algoritmo.Ejecutar(信息);
/*…东西*/
}    
} 
公共静态void main(字符串[]args)引发异常{
/*…与上述内容无关的东西,与Hadoop先生合作*/
}
}

<代码> PyyCtoto <代码>和 AlgRoTimeEuthoCoCo/<代码>是C++类,它们没有被找到。想法


谢谢

我发现了问题,是包装错误。我强迫swig向.java文件添加一个package语句,然后导入工作正常


我使用了
swig-c++-java-package
,然后编译并构建了保存包结构的jar。在那之后,我可以像往常一样参考它的内容,它工作得很好。

我发现了问题,这是一个包装错误。我强迫swig向.java文件添加一个package语句,然后导入工作正常

我使用了
swig-c++-java-package
,然后编译并构建了保存包结构的jar。在那之后,我可以像往常一样参考它的内容,它工作得很好