非Maven/Gradle项目中JMH无法生成jmh_generated类的问题求助
解决JMH在普通Eclipse Java项目中不生成jmh_generated类的问题
以下是针对性的排查和修复步骤:
检查注解处理器Factory Path配置
打开项目属性 -> Java Compiler -> Annotation Processing -> Factory Path,确保jmh-generator-annprocess-*.jar已添加到此处并勾选。注意:该配置与普通构建路径(Build Path)相互独立,仅添加到Build Path无法触发注解处理器工作。确认注解处理核心配置
在Annotation Processing页面:- 必须勾选Enable annotation processing
- 勾选Automatically configure JDT APT(自动配置APT,避免手动设置输出目录的潜在问题)
- 若手动指定了Generated source directory,需确保该路径为项目内有效目录,且已在Build Path -> Source中被识别为源目录
强制全量编译项目
执行以下操作:- 点击菜单
Project -> Clean,选择当前项目完成清理 - 清理后点击
Project -> Build Project(不要仅编译单个类,全量编译才能触发注解处理器运行)
- 点击菜单
验证Benchmark类的注解正确性
检查CollectionsBenchmark类:- 类必须用
public修饰 - 被
@Benchmark注解标记的方法需为public、无参数,返回值为void或BenchmarkMode指定的类型(如double) - 确保导入的是正确的JMH注解:
org.openjdk.jmh.annotations.Benchmark,避免使用其他包下的同名注解
- 类必须用
检查输出目录权限
确保项目的bin目录(或自定义输出目录)具备读写权限,防止因权限问题导致生成的类文件无法写入
内容的提问来源于stack exchange,提问作者Philipp
相关产品推荐
相关产品推荐

