小编Nik*_*nko的帖子

FileOutputStream try-with-resources不会关闭文件描述符

我有将某些特定的大型(约15k条目)二进制序列化文件存档提取到磁盘上文件夹的代码。

public void extractExact(Path absolutePath, DoubleConsumer progressConsumer) throws IOException
{
    ...
    // Extract to file channel
    try (final FileOutputStream fos = new FileOutputStream(absolutePath.toFile()))
    {
        PakExtractor.Extract(pakFile, Entry, fos.getChannel(), progressConsumer);
    }
 }
Run Code Online (Sandbox Code Playgroud)

extractExact 函数调用存档中的每个条目。

在这之后,如果我尝试调用Files.delete(<archive_file_path>)方法-我将得到一个异常:

java.nio.file.FileSystemException:该进程无法访问该文件,因为该文件正在被另一个进程使用。

我在Process Explorer搜索中检查了存档文件,并说我的java.exe可以打开约1.5万个文件(与存档中的文件一样多)

这仅在Windows(jdk1.8.0_162)中发生。在Linux上,“ zombie”打开的文件没有任何问题。

java windows io java-8

6
推荐指数
1
解决办法
145
查看次数

使用 Xcode 生成器进行 Cmake。如何将库添加到“使用库链接二进制文件”Xcode 项目部分

我不知道如何使用 cmake 将库添加到“Link binary With Libraries”Xcode 项目部分。如果我做类似的事情,那么target_link_libraries(MyProject zlib.dylib)当我运行结果时,它对 Xcode 项目没有意义,cmake -GXcode ..我有未解析的外部符号,但如果我手动将库添加到我的目标中,例如:Build Phases -> "+" -> "New Link Binary With Libraries Phase"在这种情况下,我没有链接器错误。

macOS 10.14.6,cmake --version输出:cmake version 3.15.2

macos xcode cmake

5
推荐指数
0
解决办法
915
查看次数

标签 统计

cmake ×1

io ×1

java ×1

java-8 ×1

macos ×1

windows ×1

xcode ×1