java报错java/lang/NoClassDefFoundError: java/lang/Object解决办法

理报错:java/lang/NoClassDefFoundError: java/lang/Object
 
操作系统环境:CentOS6.0 2.6.32-220.el6.x86_64
JDK版本环境:jdk1.5.0_22
操作系统原来安装的是jdk1.6,后来开发人员要求java程序使用jdk1.5版本的。帮开发下载JDK1.5,
安装完JDK ,设定环境变量后出现这个错误:

 代码如下 复制代码

[root@fztest97 lib]# javac
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
[root@fztest97 lib]# java
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object

 
  首先要确认的是环境变量的设置是否正确,其次,需要确认的就是lib和jre/lib文件夹中的rt和tools是否是打包后的形式,如果发现rt.pack 和 tools.pack 那么多半问题就出在这里。
  解决方法也很简单,只要将相应文件解压成rt.jar 和 tools.jar,可以使用bin里面的unpack200工具,
如:unpack200 rt.pack rt.jar
 

 代码如下 复制代码
  /apps/usr/java/jdk1.5.0_22/lib/tools.pack 转为 tools.jar
  /apps/usr/java/jdk1.5.0_22/jre/lib/rt.pack 转为 rt.jar

 
执行如下操作命令:

 代码如下 复制代码

[root@fztest97 ]# cd /apps/usr/java/jdk1.5.0_22/lib/
[root@fztest97 lib]# unpack200 tools.pack tools.jar
[root@fztest97 lib]# ls
dt.jar ir.idl jconsole.jar orb.idl sa-jdi.jar tools.jar tools.pack
[root@fztest97 lib]# cd /apps/usr/java/jdk1.5.0_22/jre/lib
[root@fztest97 lib]# unpack200 rt.pack rt.jar
[root@fztest97 lib]# ll rt.*
-rw-r--r--. 1 root root 40232487 May 23 19:23 rt.jar
-rw-r--r--. 1 root root 12960918 May 23 19:07 rt.pack

再次执行如下命令,进行验证:

 代码如下 复制代码

[root@fztest97 lib]# java -version
java version “1.5.0_22″
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_22-b03, mixed mode)
[root@fztest97 lib]# javac
Usage: javac <options> <source files>
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
-classpath <path> Specify where to find user class files
-cp <path> Specify where to find user class files
-sourcepath <path> Specify where to find input source files
-bootclasspath <path> Override location of bootstrap class files
-extdirs <dirs> Override location of installed extensions
-endorseddirs <dirs> Override location of endorsed standards path
-d <directory> Specify where to place generated class files
-encoding <encoding> Specify character encoding used by source files
-source <release> Provide source compatibility with specified release
-target <release> Generate class files for specific VM version
-version Version information
-help Print a synopsis of standard options
-X Print a synopsis of nonstandard options
-J<flag> Pass <flag> directly to the runtime system

 
到此为止,JDK1.5安装配置成功。

时间: 2024-08-26 20:03:24

java报错java/lang/NoClassDefFoundError: java/lang/Object解决办法的相关文章

java报错信息如下,有人能帮忙解决是什么原因吗

问题描述 org.openqa.selenium.WebDriverException:Anunknownserver-sideerroroccurredwhileprocessingthecommand.(WARNING:Theserverdidnotprovideanystacktraceinformation)Commanddurationortimeout:35millisecondsBuildinfo:version:'2.42.2',revision:'6a6995d31c7c56c

【技术贴】鼠标右键盘符属性报错Volume filter WMI not found的解决办法

想查看一下盘符的属性,看看还剩多少空间,以前没事的,现在报错 Volume filter WMI not found 看了看提示窗口是supercache搞的,就拿出360,在软件管家里面搜索supercache之后删除之,就没事了.

apache启动报错:the requested operation has failed解决办法_Linux

原因一:80端口占用 例如IIS,另外就是迅雷.我的apache服务器就是被迅雷害得无法启用! 原因二:软件冲突 装了某些软件会使apache无法启动如Dr.com 你打开网络连接->TcpIp属性->高级->WINS标签 把netbios的lmhosts对勾去掉,禁用tcp/ip的netbios. 然后再启动应该就可以了. 原因三:httpd.conf配置错误 如果apache的配置文件httpd.conf搞错了,在windows里启动它,会提示the requested operat

Mysql 报错PID file could not be found!解决办法

今天想把之前在cetnos6上编译安装的mariadb改下PATH环境变量,操作几次之后,关闭或重启mysql就失败了,提示如下: [root@web1 ~]# service mysqld stop MySQL server PID file could not be found!                  [FAILED] google了下,解决方案如下: 查看一下进程: [root@web1 ~]# ps aux |grep mysq* mysql     16058  0.2 1

Apache启动报错No space left on device: AH00023解决办法

对于这类错误是因为linux系统的ipc信号量造成的,apache启动时,会创建很多子进程.他们是通过信号量来和子进程进行通信的. 信号量介绍: 信号量又称为信号灯,它是用来协调不同进程间的数据对象的,而最主要的应用是共享内存方式的进程间通信.本质上,信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况:共享内存是运行在同一台机器上的进程间通信最快的方式,因为数据不需要在不同的进程间复制.通常由一个进程创建一块共享内存区,其余进程对这块内存区进行读写.在Linux系统下 ,常用的方式

JS的语法,居然引起JAVA报错,请指教

问题描述 我的一段JS中有个${}字符,是一个正则表达式中的,并且在<script type="text/javascript" id="ScriptProxy1">...</script>中,但这样的JSP编译就通不过,JAVA错如下:org.apache.jasper.JasperException: /alert.jsp(10,3932) "${}" contains invalid expression(s): j

二维数组-java报错thread &amp;amp;quot;main&amp;amp;quot; java.lang.NullPointerException

问题描述 java报错thread "main" java.lang.NullPointerException import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.Scanner; public class exercise { /** * @param args */ public stat

求解答java报错问题运行出错,求帮助

问题描述 求解答java报错问题运行出错,求帮助 16:29:21,442 ERROR ContextLoader:215 - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userServiceImpl': Injection of resource fields failed; nested except

matlab m文件构建成Java 报错不知道是什么错误

问题描述 matlab m文件构建成Java 报错不知道是什么错误 m文件内容是: function [sum] = oper(a,b); sum = a + b; end 出错的错误是: 正在构造 Javadoc 信息... 标准 Doclet 版本 1.8.0_40 正在构建所有程序包和类的树... 正在生成C:UsersAdministratorDocumentsMATLABoperfor_testingdochtmloperClass1.html... C:UsersAdministra