关于mvn install命令执行报错问题

摘要:
例如,如果测试实体被修改并且mvninstall没有及时执行,那么在启动测试web时将报告错误。该错误通常通过及时修改和mvninstall来避免。然而,这里提到的mvninstall错误的原因与上述内容无关。问题的原因是打开了一个新的wordspace,创建了一个maven项目,执行mvninstall时错误消息的截图如下:红色标记是根本原因。否则,无法执行java命令。Java运行时环境是运行用Java语言编写的程序不可或缺的运行环境。RE包括Java虚拟机、运行时类库和Java应用程序启动器,它们是运行Java程序所必需的组件。

首先这个报错,通常要么是依赖问题,比如模块之间的依赖传递问题,通常报这种错误会在控制台提示。

或者是比如子工程分为test-entity、test-dao、test-service、test-web三者之间依赖传递,web依赖为service,service依赖于dao,dao依赖于entity。

比如修改了test-entity,没有及时执行mvn install,会导致test-web启动报错。这种报错,通常及时修改并mvn install是可以避免的。

不过在此讲的一个mvn install 报错问题,原因与上述所说无关。

问题出现的原因是:新开一个wordspace空间,新建maven项目,并在执行mvn install时报错

错误信息截图如下:

关于mvn install命令执行报错问题第1张

红色标记处是根本原因。

错误信息翻译过来的意思是:也许您是在JRE上运行,而不是在JDK中运行。

这就表示必须要在jdk环境运行,因为jdk中包含java工作需要的类库同时也包含java所需运行的环境jre。另外也不得不提到maven安装,安装maven的时候,前提必选安装jdk,没有jdk,maven是跑不起来。这就好比为什么安装java时要配置环境变量,其实不配也可以运行跑起来,但是必须要进入对应的安装目录bin下面。不然是无法执行java命令的。配置环境变量的意义是可以供全局使用。配置maven的环境变量意义也是如此,maven环境中需要java的类库,如果没有java的类库是会报错的,这也就解释了那句错误信息的原因。

顺便说说jre和jdk的区别,这也是初中级Java开发工程师常见的面试题:

关于mvn install命令执行报错问题第2张

在计算机开发语言的历史中,从来没有哪种语言象Java那样受到如此众多厂商的支持,有如此多的开发工具。

 
  JDK(Java Development Kit)
  JDK是Java开发工具包,是Sun Microsystems针对Java开发员的产品。
  JDK中包含JRE,在JDK的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。
  JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
  ①SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。
  ②EE(J2EE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。
  ③ME(J2ME),micro edition,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。
 
关于mvn install命令执行报错问题第3张

金字塔结构 JDK=JRE+JVM+其它 运行Java程序一般都要求用户的电脑安装JRE环境(Java Runtime Environment);没有jre,java程序无法运行;而没有java程序,jre就没有用武之地。

 
  Java Runtime Environment(JRE)
  是运行基于Java语言编写的程序所不可缺少的运行环境。也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。
  RE中包含了Java virtual machine(JVM),runtime class libraries和Java application launcher,这些是运行Java程序的必要组件。
  与大家熟知的JDK不同,JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户。
 
 
  JVM(java virtual machine)
  就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。
  也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
  只有JVM还不能成class的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib,而jre包含lib类库。
  JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行,这也是Java特性之一的跨平台的原因。
 

解决办法:

步骤一:点击Eclipse上面导航栏的一个叫Window菜单,点击它会出现一个下来菜单,点击下来菜单中的Preference进入到如下界面:

关于mvn install命令执行报错问题第4张

步骤二:点击InstalledJRES 选中jdk1.8.0,再点击remove进行删除

关于mvn install命令执行报错问题第5张

步骤三:删除后,点击Add

关于mvn install命令执行报错问题第6张

步骤四:点击Add 会进入这个界面,选中Standard VM,再点击下方next,进行下一步

关于mvn install命令执行报错问题第7张

步骤五:在步骤四的基础上,会出现如下界面,该界面请点击Directory,这个Directory是存放jre的地方,你所要做的是找到jdk安装路径,选择jdk下面的jre

关于mvn install命令执行报错问题第8张

关于mvn install命令执行报错问题第9张

 步骤六:选择jdk下对应的jre后点击finish

关于mvn install命令执行报错问题第10张

步骤七:选中jre,点击Apply And Close即可

关于mvn install命令执行报错问题第11张

关于mvn install命令执行报错问题第12张

通过上述步骤即可解决问题

大家或许会疑问为什么

免责声明:文章转载自《关于mvn install命令执行报错问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[转]Oracle中使用Rownum分页详细例子Fiddler安卓抓包详细教程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Freeswitch 入门

让我们从最初的运行开始,一步一步进入 FreeSWITCH 的神秘世界。 命令行参数 一般来说,FreeSWITCH 不需要任何命令行参数就可以启动,但在某些情况下,你需要以一些特殊的参数启动。在此,仅作简单介绍。如果你知道是什么意思,那么你就可以使用,如果不知道,多半你用不到。 使用 freeswitch -help 或 freeswitch --he...

vagrant package 打包自己的box镜像

关于如何在win下使用Vagrant和Virtual Box创建一台CentOS7虚拟机我的博客中有教程介绍:https://www.tiance.club/post/2370098709.html 搭建完毕后等虚拟机的细节都调整好后强烈建议打包成自己的镜像,以后需要在其他电脑安装虚拟机环境或者电脑的虚拟机出问题的时候可以直接一键还原,不然要重新搭建有点繁...

函数的调用过程与出入栈

函数调用的过程 线程执行的基本行为是函数调用,每次函数调用的数据都是通过Java栈传递的。Java栈与数据结构上的栈有类似的含义,它是一块先进后出的数据结构,只支持入栈和出栈两种操作。Java栈的主要内容是栈帧。每次函数调用都会有一个对应的栈帧被压入Java栈,每次函数调用结束(无论是正常返回或者抛出异常),都会有一个栈帧被弹出Java栈。 如图所示,函数...

如何在Windows下搭建Android开发环境

Android SDK 2.2 开发环境搭建 (1) 安装必备。(以下为Android开发中必备的软件与工具)1.1 安装jdk。Android目前支持以下jdk版本:jdk1.5,jdk1.6如果未安装可以到官方下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html下载...

win7远程连接ubuntu,出现灰屏解决方法

  问题: win7远程虚拟机ubuntu 12.04出现灰色屏幕 打开windows自带的远程桌面连接。输入ubuntu虚拟机的IP地址 可以连接上,输入username和password 点击OK,出现灰色屏幕 解决方法: 1、在虚拟机上的Dash Home搜索Desktop Sharing,并进行如下设置。 若是没有找到,安装GNOME桌...

Genymotion的2个问题及解决方法

问题一:Unable to connect to your virtual device 解决方法:基本都是内存不够导致的,在virtualbox中调整对应虚拟机的内存,确保任务管理器中的性能一项中剩余内存大于虚拟机分配的内存即可。 BTW:任务管理器是不统计虚拟机的内存的。。 问题二:从Genymotion开启虚拟机后,play.exe进程无故结束,模拟...