Spring源码阅读环境搭建-java: 程序包jdk.jfr不存在的报错解决方法

下载Spring-Framework。

https://gitee.com/mirrors/Spring-Framework

这个是 gitee spring镜像 每天更新一次

压缩后打开/gradle/wrapper下的properties文件

查看distributionUrl用的哪个版本的gradle 先到网上下载 然后使用下载的gradle包本地引入 不然直接下载很慢

我这里是gradle-6.8.3-bin.zip.

本地引入例子:distributionUrl=file:///H:/android/gradle-6.8.3-bin.zip

repositories修改:

repositories {
   maven {url 'https://maven.aliyun.com/nexus/content/groups/public/'} 
   maven { url 'https://repo.springsource.org/plugins-release/' }
}

查看根目录文件下的 import-into-idea.md

里面有步骤

  1. 预编译oxm :使用命令

    ./gradlew :spring-oxm:compileTestJava   //windows 去掉./
    

2.idea 导入 build.gradle 之后整个项目就会加载

3.出现提示时,排除spring-aspects模块,因为该模块使用了idea无法识别的代码类型。

编译完成后,随便找个模块下test单测跑一下是否成功

然后就是我们新加入自己的moudle

右键根目录New moudle 选择Gradle 勾Java 然后取名就行了

新建模块加入代码

1.MainTest

package com.zxh.test;

import org.junit.Test;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.core.io.ClassPathResource;

public class MainTest {

	@Test
	public void MyTest() {
		ClassPathResource res = new ClassPathResource("Spring-config.xml");
		DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
		XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
		reader.loadBeanDefinitions(res);

		System.out.println(factory.getBean(TestBean.class).getName());

	}
}

2.TestBean

package com.zxh.test;

public class TestBean {
	private String name = "hehe";

	public TestBean(String name) {
		this.name = name;
	}

	public TestBean() {
	}

	@Override
	public String toString() {
		return "TestBean{" +
				"name='" + name + '\'' +
				'}';
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

3.resources下添加Spring-config.xml 这里我的S大写 注意下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
	<bean id="testBean" class="com.zxh.test.TestBean"/>
</beans>

然后就可以测试代码啦

在这步或者上面的步骤中可能出现 java: 程序包jdk.jfr不存在的报错
我们只需要把Project Structure的语言等级改为8,Project和Moudle的SDK换为
OpenJDK8U-jdk_x64_windows_hotspot_8u222b10.zip
**
**
Setting中Gradle下JVM也改为OpenJDK8Ujdk_x64_windows_hotspot_8u222b10.zip 即可
该资源网上找

然后运行就成功了。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答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 JFRJava 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配置是否正确等可能原因,并尝试以替代方案来解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值