gpt4 book ai didi

eclipse - 使用 Java 9+ 在 Windows 上的 Eclipse 2019-12 中启动 junit 测试时出现 ClassNotFoundException

转载 作者:行者123 更新时间:2023-12-04 10:45:20 25 4
gpt4 key购买 nike

升级到 eclipse 2019-12 后,我无法再运行一些 junit 测试。我得到的具体症状是,我只是在控制台 View 中收到以下消息:

Error: Could not find or load main class org.eclipse.jdt.internal.junit.runner.RemoteTestRunner
Caused by: java.lang.ClassNotFoundException: org.eclipse.jdt.internal.junit.runner.RemoteTestRunner

这不适用于我的所有项目,仅适用于其中的一些。

试图将其简化为一个小例子失败了,这表明这与项目的复杂性有关。我可以拿一个失败的项目,删除所有实际代码,放置一个简单的“无操作”测试用例,让类路径保持不变,但它仍然失败,所以它与测试的内容无关,但表明类路径中存在导致问题的内容。试图简化类路径以找到有问题的库或项目会导致不一致的结果。我想我找到了有问题的图书馆,一个图书馆,如果我删除它,事情就会工作,我把它放回去,他们失败了,但是我再试一次,我得到了不同的结果。

非常混淆。

我正在记录这一点,以防其他人发现同样的事情,解决方案如下。

最佳答案

经过大量调查,事实证明这似乎是eclipse中的一个错误。

当类路径太长时,并且在启动 java 9+ eclipse 时会在参数文件中生成类路径,并在 java 命令行上传递该文件的名称。

在 eclipse 2019-12 中,该文件中的类路径参数字符串用引号括起来。不幸的是,这意味着类路径中的反斜杠被解释为转义字符,导致类路径被误解。

Eclipse 2019-09 似乎没有在参数文件中的类路径周围生成引号,因此不会出现问题。

该问题只会在启动 java 9+ 时出现,因为那时引入了对参数文件的支持。该问题只会出现在 Windows 上,因为在 Linux/mac 平台上,类路径将包含正斜杠分隔符而不是反斜杠。

这不仅限于启动 junit,这对于任何启动都是一个问题,我碰巧在 junit 启动时看到了这一点。

在这里记录这一点,希望它可以帮助其他人更快地解决问题。

Eclipse 问题引用是 https://bugs.eclipse.org/bugs/show_bug.cgi?id=559147

关于eclipse - 使用 Java 9+ 在 Windows 上的 Eclipse 2019-12 中启动 junit 测试时出现 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59732881/

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