2014-10-27 16 views
0

我正在寻找一种方式来重载在jNetPcap此功能:jNetPcap超载openOffline()

Pcap openOffline(String fname, StringBuilder errbuf); 

我要实现它以这样的方式

Pcap openOffline(InputStraem stream, StringBuilder errbuf); 

我已经下载了源代码但是这个函数是一个native函数,我该怎么去执行这个函数并且试着改变它呢?

回答

0

您可以将您的方法声明为static,并在方法中调用原始本机方法。

喜欢的东西

static Pcap openOffline(InputStream stream, StringBuilder errbuf) { 
    String fname; 
    doSomeThing(); //Extract a string from the inputstream and store it in fname 
    return openOffline(fname, errbuf); 
} 
+0

嗨,这不是我要找的。 我想要实现的是避免将InputStream保存到磁盘上的文件并直接使用InputStream。 我试图找到一种方法来查看openOffline(fname,errbuf)如何处理该文件并更改为使用InputStream而不是该文件。 – 2014-10-29 06:50:23

+0

不幸的是,似乎没有直接的方法将InputStream传递给JNI,因为似乎没有相应的JNI类。通过作为工作项目,你不能访问它。我做了一些Google搜索,名为** JunC++ ion **的工具似乎能够为InputStream生成JNI代码。见[这里](http://codemesh.com/products/junction/) – aMpeX 2014-10-30 09:03:58