在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