java - Kotlin:在具有加密主页的 Linux 上:java.io.FileNotFoundException(文件名太长)

标签 java kotlin

在加密的 linux 主目录下,我的 Kotlin 构建(使用 maven)失败并出现“java.io.FileNotFoundException(文件名太长)”。

文件名看起来像这样,长度为 298 个字符:

/home/niel/projects/project/bla/.../bla/.../bla/SomeTest$test name with spaces$1.class

测试看起来像这样:

@Test
fun `test with nice descriptive name`() {
    // ...
}

getconf NAME_MAX/ 返回 255,比文件名的 298 多。

Scala 有一种方法可以使用 max-classfile-name 来处理这个问题选项。

在 Kotlin 中有解决这个问题的方法吗?

最佳答案

我一直在为同样的问题而烦恼。在这种描述性命名的测试方法中使用 lambda 时,问题会加剧(主要发生?)。

在我的例子中,我在 ext4 之上使用带有加密文件名的 ecryptfs。鉴于 ecryptfs 添加到文件名开头的有效载荷和填充,似乎 ~140 bytes is the usable maximum filename length .

我不知道 Kotlin 中有什么机制可以解决这个问题,但如果您使用的是 JUnit 5,则可以使用 @DisplayName更详细的测试名称的注释。

关于java - Kotlin:在具有加密主页的 Linux 上:java.io.FileNotFoundException(文件名太长),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48338025/

相关文章:

java - Servlet RequestDispatcher 不转发

java应用程序无法将空值插入mysql数据库

spring - 在Spring MongoDB存储库中将$ slice与Kotlin中的@Query一起使用时,注释参数错误

java - 如何处理flutter Java/Kotlin

gradle - 使用 gradle plugin 配置另一个 gradle 插件

java - 错误 : null value in column "name_file" violates not-null constraint

java - 具有规范和分页支持的 Spring 数据分组

java - 用 Java 在窗口外绘图?

android - 排序嵌套列表对象

Gradle NamedDomainObject 从未配置过