记一次Eclipse关于JDK和JRE的问题
今天同事遇到个问题,发现import package居然报错,但是那个package实际上存在。一般情况某个类有问题或者是该类中的方法有问题,总会在IDE中显示一条红线。但是这次确实是没有问题。我找到该类所在的子模块,使用mvn install。这个错误我之前遇到过,光update project是没有用的,update project主要作用是同步。比如,我在父工程中加入其他第三方插件依赖,有些地方需要它,有的时候,明明已经导入该依赖,可是我却不能用它。这时,只需update project即可。根据整个项目的大小,需要的时间是不同的,如果项目过大,update project的时间可能会过长。
贴贴关于mvn install的错误:
关键信息就是:No compile is provider in this environment.Perhaps you are running on a JRE rather then a JDK
翻译过来的意思是:
在此环境中没有编译器提供程序。也许您运行的是JRE而不是JDK
很多篇博客只讲如何解决,不讲是什么原因。
当然了,开发经验多年的小伙伴们一眼就看出了。直接就知道怎么解决。
在此我要说说JDK和JRE的区别,虽然这个也是老生常谈,但是这回我要结合这个错误,谈点不一样的。
JDK和JRE有如下区别:
相同点:
都可以运行JAVA程序,JDK中包含JRE,JRE本身就是Java运行环境。
不同点:
JDK全称为"JAVA 开发工具包",JRE全称为"JAVA运行环境":
JRE是java runtime environment(java运行环境)的缩写。光有JVM还不能让class文件执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,
里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm合lib合起来就称为jre。所以,当你写完java程序,也就.java文件时,当其编译成.class文件后,你可以 把这个.class文件和jre发给朋友,这样你的朋友就可以运行你写的程序了(jre中有运行.class的java.exe)。
JDK:JDK是java development kit(java开发工具包)的缩写。每个做java开发的人都会先在机器上装一个JDK,那 让我们看一下JDK的安装目录。在目录下面有六个文件夹、一个src类库源码压缩包、和其他几个声明文件。其中,真正在运行java时起作用的是以下四个文件夹:bin、include、lib、jre。现在我们可以看出这样一个关系,JDK包含JRE,而JRE包含JVM。
JRE和JDK比较可以得出一个结论,就是jdk不需要jre就可以跑起来,因为它包含jre,而jre不需要jdk也能运行,因为其有运行.class的java.exe。这个也是java面试基础常考的题目之一。
关于JAVA编译原理可以参考我的这篇博客:说说Javac
小结:
任何时候都要牢记一个准则,“夯实基础”。荀子说:"不积跬步无以至千里“。不论是生活还是学习都是这么个理。
希望这篇博文,能给大家带来启发和帮助。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述