spring源码编译时会遇到“jdk.jfr.Category不存在”的错误

问题描述:

编译spring源码报import jdk.jfr.Category错误

错误信息描述:
在编译spring源码的时候出现了程序包jdk.jfr.Category不存在,import jdk.jfr.category的问题;如下图所示:在这里插入图片描述

造成这种错误的原因:
Gradle的编译环境为jdk8,但是jdk8中并没有jdk.jfr相关包的内容的存在,导致编译时找不到对应的类,因此报错;如下转接头所示:
在这里插入图片描述
解决办法:
在IDEA中设置:设置-> 构建、执行、部署 ->构建工具-> Gradle中,设置Gradle JVM为jdk11。如下图所示:
在这里插入图片描述
设置好之后,再次编译就不会再出错了!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 这个错误提示是说在当前的环境中找不到名为jdk.jfr的程序包。可能是因为你的Java安装不完整或者没有正确配置环境变量。你需要检查一下Java的安装和环境变量设置,确保jdk.jfr这个包已经正确安装并且在环境变量中可以被找到。 ### 回答2: Java 是一种高级编程语言,它广泛用于各种应用程序的开发。使用 Java 编写的应用程序需要在运行时使用 Java 开发工具包(JDK)中的 Java 运行时环境(JRE)来运行。 当您尝试编写使用 Java Flight Recorder(JFR)的 Java 应用程序并运行时,可能会遇到错误“ 程序包jdk.jfr不存在 ”。这是因为 JDK 8 中的 Java Flight Recorder (JFR) 仅适用于 Oracle JDK 和 OpenJDK,而不适用于其他 Java 开发工具包。 如果您安装了其他 Java 开发工具包或版本,则可能无法访问 JFR 包。要解决此问题,您需要安装其他 JDK 或更新您的 JDK 版本以包含 JFR 包。 一种方法是在官方下载页面上下载 Oracle JDK 或 OpenJDK 的最新版本。在安装此版本后,您应该能够使用 JFR 包。 另一种方法是通过 Maven 或其他构建工具添加 JFR 包的依赖项。在 Maven 中,可以添加以下依赖项: ``` <dependency> <groupId>com.oracle.jdk</groupId> <artifactId>jfr</artifactId> <version>1.0.1</version> </dependency> ``` 请注意,这种方法需要您将 Maven 或其他构建工具配置为使用正确的 JDK。 总之,要解决“程序包 jdk.jfr 不存在”的问题,您需要确保您的 JDK 包含 JFR 或安装新的 JDK 版本。您还可以在构建工具中添加 JFR 依赖项以访问该包。 ### 回答3: 这个问题通常出现在你想要在Java代码中使用Java Flight Recorder (JFR)功能时。JDK JFR是Java Development Kit (JDK)中自带的一种用于线上Java应用程序的性能监控和故障分析工具。当你在使用JDK JFR时,可能会遇到“程序包jdk.jfr不存在”的问题。 这个错误通常是因为你的Java版本不支持JFR功能。检查一下你的JDK版本是否为JDK 7u40或以上版本,因为只有这些版本才支持JFR功能。如果你的版本较低,你需要升级以支持JFR功能。 如果你的JDK版本已经符合要求,则可能是JFR功能未正确安装。确认一下你的JDK目录中是否包含jfr.jar文件。如果没有,你可以从Oracle官网下载Oracle JDK二进制文件并重新安装JFR。 此外,如果你是在IDE中使用Java Flight Recorder,可以检查一下你的IDE配置是否正确,确保你已经将JFR文件路径添加到了CLASSPATH环境变量中。 最后,如果你已经尝试了以上方法,但仍然无法解决问题,你可以尝试使用替代方案,例如Java VisualVM、JProfiler、YourKit等工具,这些工具同样具有性能监控和故障分析功能,并且易于使用。 总之,当你遇到“程序包jdk.jfr不存在”的问题时,你应该检查你的JDK版本、JFR功能是否正确安装、IDE配置是否正确等可能原因,并尝试以替代方案来解决问题。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值