0

我正在开发一个相对简单的数据包捕获应用程序,并且正在使用 Jpcap 库。在我将保存功能添加到我的程序之前,一切都在工作。

我的写功能

public void write() {
    try {
        writer = JpcapWriter.openDumpFile(captor, fileName);
    } catch (IOException e) {e.printStackTrace();}
    for (Packet packet : this.packets) {
        writer.writePacket(packet);
    }
    writer.close();
}

它正确地获取了捕获者和文件路径,成功地循环了所有数据包,但是当它尝试在代码块的末尾写入时,JVM 崩溃了。

我的问题是,为什么我的应用程序在尝试关闭 JpcapWriter 时会崩溃?

更新:我刚刚发现的奇怪的事情是它实际上是在写入文件。它只是在写入后崩溃。我在关闭后添加了一个打印语句,但它永远不会到达它。

4

1 回答 1

0

我发现其他几个人和我有同样的问题。我不知道为什么,但删除关闭作家的电话解决了我的问题。该文件现在可以正确写入,并且没有问题。目前,我对它的工作感到满意,但我可能会在以后回到这个问题。

更新:事实证明,当调用停止捕获时文件关闭。当捕获线程关闭时,它会关闭捕获器,这反过来又会为我关闭编写器。本质上,我试图告诉它关闭编写器,因为编写器已经关闭,这导致 JVM 崩溃。

于 2012-06-05T21:17:41.643 回答