今天同事遇到个问题,发现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的问题的更多相关文章

  1. Eclipse添加JDK,JRE切换

    Eclipse添加JDK Window---preferences 切换JDK,JRE

  2. Visual Studio、.net framework、CLR与JDK、JRE、JVM、Eclipse

    .net平台                                        java平台 开发工具                   Visual Studio            ...

  3. JDK与JRE及其在Eclipse中的使用

    转载自:http://blog.csdn.net/gx1058742912/article/details/51033942 JDK与jRE的区别 JDK(java development kit): ...

  4. Java学习2 - JDK和JRE和JVM的区别_JDK的下载安装_环境变量配置

    一 JDK和JRE和JVM的区别 Jdk: Java Development kit - Java 开发工具 JRE: Java Runtime Environment - java运行环境 JVM: ...

  5. Java2_java入门时的一些基本概念的理解(j2ee,j2se,j2me,jdk,sdk,jre,jvm,跨平台)

    什么是SDK呢? Software Develop Kit的简称,顾名思义就是软件开发包.软件开发商实现底层模块,并对其进行类库封装,配置成高级别的开发环境,为程序员上层的程序开发提供支持.譬如Goo ...

  6. 浅谈Eclipse寻找JVM(JRE)的顺序机制(转)

    转自:http://blog.csdn.net/teedry/article/details/6666850 Eclipse也是一个普通的Java程序,因此必须有一个JRE做为运行环境.        ...

  7. eclipse调试jdk源码

    摘要 介绍使用eclipse调试jdk源码 java是一门开源的程序设计语言,喜欢研究源码的java开发者总会忍不住debug一下jdk源码.虽然官方的jdk自带了源码包src.zip,然而在debu ...

  8. eclipse查看jdk源码,及反编译查看

    jdk中的包: dt.jar是关于运行环境的类库,主要是swing的包 tools.jar是关于一些工具的类库 rt.jar包含了jdk的基础类库,也就是你在java doc里面看到的所有的类的cla ...

  9. jdk、jre、jvm的关系

    JDK里面的工具也是用JAVA编写的,它们本身运行的时候也需要一套JRE,如C:\Program Files\Java\jdk1.5.x\目录下的JRE.而C:\Program Files\Java\ ...

随机推荐

  1. Redis简介及应用场景

    一丶Redis介绍 Redis是一个开源的 key—value型 单线程 数据库,支持string.list.set.zset和hash类型数据. 默认端口:6379 默认数据库数量:16 二.优点: ...

  2. Pupu(hdu3003)数论

    Pupu Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  3. Connect the Cities(hdu3371)并查集(附测试数据)

    Connect the Cities Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  4. 输出字符串中最长的单词 C# 算法

    要求: 设计一个算法从一片英语文章或者英语字符串里面输出其中最长的单词. Input: string     Output: string 尽可能多的设计测试用例来测试这个算法. 考虑空间和时间复杂度 ...

  5. call,apply,bind

    var student={ name:"马云", say:function(){ console.log(this.name); } } var f=student.say; f. ...

  6. JavaScript--DOM操作表格及样式(21)

    一 操作表格 // <table>标签是HTML中结构最为复杂的一个,我们可以通过DOM来创建生成它,或者HTMLDOM来操作它; // 使用DOM来创建表格; var table = d ...

  7. C#将图片存放到SQL SERVER数据库中的方法

    本文实例讲述了C#将图片存放到SQL SERVER数据库中的方法.分享给大家供大家参考.具体如下: 第一步: ? 1 2 3 4 5 6 7 8 9 10 //获取当前选择的图片 this.pictu ...

  8. 【java】一些零碎的知识点

    java注释文档 一些常用的javadoc标签 常用javadoc标签 @see: other-class 引用other-class 生成的html文档会有一个See Alse 作为超链接的只是条目 ...

  9. PHP编译安装时常见错误解决办法,php编译常见错误

    PHP编译安装时常见错误解决办法,php编译常见错误 1.configure: error: xslt-config not found. Please reinstall the libxslt & ...

  10. Windows7安装nginx后,'nginx -t -c nginx.conf' 命令出现 “could not open error log file: CreateFile() "logs/error.log" failed” 错误的原因

    网上搜索安装nginx的方法,按照步骤在 http://nginx.org/en/download.html 下载了安装包,并配置了conf/nginx.conf,将nginx的根目录添加进了环境变量 ...