记一次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
小结:
任何时候都要牢记一个准则,“夯实基础”。荀子说:"不积跬步无以至千里“。不论是生活还是学习都是这么个理。
希望这篇博文,能给大家带来启发和帮助。
记一次Eclipse关于JDK和JRE的问题的更多相关文章
- Eclipse添加JDK,JRE切换
Eclipse添加JDK Window---preferences 切换JDK,JRE
- Visual Studio、.net framework、CLR与JDK、JRE、JVM、Eclipse
.net平台 java平台 开发工具 Visual Studio ...
- JDK与JRE及其在Eclipse中的使用
转载自:http://blog.csdn.net/gx1058742912/article/details/51033942 JDK与jRE的区别 JDK(java development kit): ...
- Java学习2 - JDK和JRE和JVM的区别_JDK的下载安装_环境变量配置
一 JDK和JRE和JVM的区别 Jdk: Java Development kit - Java 开发工具 JRE: Java Runtime Environment - java运行环境 JVM: ...
- Java2_java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)
什么是SDK呢? Software Develop Kit的简称,顾名思义就是软件开发包.软件开发商实现底层模块,并对其进行类库封装,配置成高级别的开发环境,为程序员上层的程序开发提供支持.譬如Goo ...
- 浅谈Eclipse寻找JVM(JRE)的顺序机制(转)
转自:http://blog.csdn.net/teedry/article/details/6666850 Eclipse也是一个普通的Java程序,因此必须有一个JRE做为运行环境. ...
- eclipse调试jdk源码
摘要 介绍使用eclipse调试jdk源码 java是一门开源的程序设计语言,喜欢研究源码的java开发者总会忍不住debug一下jdk源码.虽然官方的jdk自带了源码包src.zip,然而在debu ...
- eclipse查看jdk源码,及反编译查看
jdk中的包: dt.jar是关于运行环境的类库,主要是swing的包 tools.jar是关于一些工具的类库 rt.jar包含了jdk的基础类库,也就是你在java doc里面看到的所有的类的cla ...
- jdk、jre、jvm的关系
JDK里面的工具也是用JAVA编写的,它们本身运行的时候也需要一套JRE,如C:\Program Files\Java\jdk1.5.x\目录下的JRE.而C:\Program Files\Java\ ...
随机推荐
- Java JDBC的基础知识(五)
本文主要记录JDBC基础知识之后的部分内容.另外,我看到<Java核心基础2>中第四章是主要介绍数据库编程的.里面有一些说明和应用特别灵活,有些部分也太容易理解,建议大家看一下.这篇是依然 ...
- HDFS 命令大全
目录 概要 用户命令 dfs 命令 追加文件内容 查看文件内容 得到文件的校验信息 修改用户组 修改文件权限 修改文件所属用户 本地拷贝到 hdfs hdfs 拷贝到本地 获取目录,文件数量及大小 h ...
- PageHelper的使用方法
Mybatis分页组件Mybatis-PageHelper使用流程 只需要两步即可: 1.添加依赖 <!--PageHelper--> <dependency> <gro ...
- Java 内部类、静态内部类、匿名内部类
java提高篇(八)----详解内部类 概念 可以将一个类的定义放在另一个类的定义内部,这就是内部类. 为什么要使用内部类?在<Think in java>中有这样一句话:使用内部类最吸引 ...
- RequestDispatcher.forward转发与HttpServletResponse.sendRedirect重定向
下面是HttpServletResponse.sendRedirect 方法实现的请求重定向与RequestDispatcher.forward 方法实现的请求转发的总结比较:(1)RequestDi ...
- CentOS7部署Django项目
1. 云服务器 这里使用的是腾讯云选择系统:CentOS7.3 记住云服务器登录密码 2. 配置Python3环境 默认Python环境为python2.7,yum安装是需要python2的环境的 安 ...
- SpringBoot简介、特点
##SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包.SpringBoot整合了所有的框架,并通过一行简单的main方法启动应用. ##微框 ...
- 【java】开发中常用字符串方法
java字符串的功能可以说非常强大, 它的每一种方法也都很有用. java字符串中常用的有两种字符串类, 分别是String类和StringBuffer类. Sting类 String类的对象是不可变 ...
- Echarts图表常用功能配置,Demo示例
先看下效果图: 就如上图所示,都是些常用的基本配置. Legend分页,X轴设置,Y轴设置,底部缩放条设置, 数值显示样式设置,工具箱设置,自定义工具按钮, 绑定点击事件等等.这些配置代码中都做了简单 ...
- R中的空间数据分析
> library(sp) > library(maptools) > library(raster) > library(rgeos) > maxd3 = readAs ...