gpt4 book ai didi

java - 为什么我的 Eclipse Helios 调试在单步执行 Path.register(WatchService, Kind...) 时会出现?

转载 作者:行者123 更新时间:2023-12-01 05:26:22 24 4
gpt4 key购买 nike

我在 Junit 4 类中有这样的代码:

Path dir = Paths.get("/tmp/testDir");
dir.toFile().mkdir();
WatchService watchService = FileSystems.getDefault().newWatchService();
dir.register(watchService, StandardWatchEventKinds.ENTRY_CREATE,
StandardWatchEventKinds.ENTRY_DELETE);

当我尝试在 Eclipse Helios 调试透视图中单步执行最后一条语句时,相关线程指示它正在“单步执行”并且永远不会返回。为什么?

当我尝试 Maven 命令“mvn test”来执行 Junit 类时,显然也会发生相同的行为(卡在 Path.register() 调用上)(至少该假设与我所测试的类的失败一致)参见)。

这是我的 JVM:

$ $JAVA_HOME/bin/java -version
java version "1.7.0_02"
Java(TM) SE Runtime Environment (build 1.7.0_02-b13)
Java HotSpot(TM) 64-Bit Server VM (build 22.0-b10, mixed mode)

最佳答案

冒着回答我自己的问题的风险,我了解了有关 Path.register() 方法的以下内容:1)如果 JUnit 测试中的所有其他线程都挂起,它显然不会返回; 2) 它的执行速度不够快,无法捕获 JUnit 测试创建的第一个文件。因此,Eclipse 调试挂起,Maven 测试在同一点失败——但原因不同。

关于java - 为什么我的 Eclipse Helios 调试在单步执行 Path.register(WatchService, Kind<?>...) 时会出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9622875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com