运行mvn命令出现java/lang/NoClassDefFoundError: java/lang/Object错误解决方案及原因分析

来源:互联网 发布:淘宝高达模型店推 编辑:程序博客网 时间:2024/05/21 22:58

在win7的操作系统下,用Maven构建大数据实时流处理框架Storm的开发环境时,下载Maven二进制.zip压缩包,解压缩,配置环境变量,之后运行mvn命令,出现如下错误,错误信息如下图所示:


Error occurred during initialization of VM  java/lang/NoClassDefFoundError:java/lang/Object

通过网上资料查询,具体解法方案如下所示:

Error occurredduring initialization of VM java/lang/NoClassDefFoundError: java/lang/Object
可以看出是没有找到基础类库,查看一下tools.jar及rt.jar 果然没有,但是我的JDK安装目录的lib文件夹中,只有rt.jar,没有tools.jar。如下图所示:


之后重新安装了一个JDK版本(jdk-7u60-windows-x64.exe)。安装完后,进入JDK的安装目录,查看文件夹lib目录下的文件,如下图所示。


之后修改环境变量,详细配置步骤如下(补充):

打开系统属性面板(桌面上右键单击“我的电脑”→“属性”),点击高级系统设置,再点击环境变量,在系统变量中新建一个变量,变量名为JAVA_HOME,变量值为Java安装目录C:\ProgramFiles\Java\jdk1.7.0_60。点击确定,接着在系统变量中找到一个名为Path的变量,在变量值的末尾加上%JAVA_HOME%\bin;,注意多个值之间需要有分号隔开,然后点击确定。至此,环境变量设置完成,详细情况如图所示:


         之后通过cmd命令来查看,详细信息如下图所示,之后运行mvn –version命令,能正确执行结果。说明问题已近解决。详细信息请看截图:


原因解读:

         错误的原因是没有找到tools.jar及rt.jar;
tools.jar   :是关于一些工具的类库
rt.jar      :包含了jdk的基础类库,也就是你在java doc里面看到的所有的类的class文件

参考网址:http://blogs.aboutit.cn/index.php/archives/25.html

 

网上还有一种解决方案:我没尝试,摘录如下:

根据错误的提示初步判断是因为Java虚拟机内存设置的问题,查看了程序启动参数如下:

    java -Xms512m-Xmx2024 com.javatang.MyApp

 原来是设置内存的时候最大内存后面没有设置单位,于是修改为

    java -Xms512m-Xmx2024m com.javatang.MyApp

可是运行程序还是出现上面的错误,突然想到前几天服务器的内存撤掉了一根,现在只有3G了,设置的最大内存可能太多了,于是又修改如下

    java -Xms512m-Xmx1024m com.javatang.MyApp

运行之后一切就正常了。

参考网址:http://www.javatang.com/archives/2006/08/11/170654.html

1 0
原创粉丝点击