我得也有这个问题
我觉得是因为path太长了
我的path很长,包括vc delphi的一些东西
所以每次都的重新加上不过上次重转了系统,只装了一个jbuiolder就好了

解决方案 »

  1.   

    e:\j2sdk1.4.2\lib\tools.jar;e:\j2sdk1.4.2\jre\lib\rt.jar在classpath中加上试试
      

  2.   

    应该不是path的长度问题,而是使用的java可执行文件的问题。
    如果你安装jdk,那么其实java会在你的计算机上安装两个java.exe,一个是你的jdk所在目录,另外一个在你的C:\windows\System(32)目录,如果按照你最初的path设置,那么系统执行的是C:\windows下的java.exe,而那对应java.exe的..\lib目录没有找到相关的jar文件,那么java就必须去读取注册表,而你的注册表“'software\javasoft\java runtime environment'”因为种种原因不存在或者不能打开,java就只能蹦叉了。而你的使用path e:\j2sdk1.4.2\bin后运行正常,就是因为java执行的是jdk所在目录的java.exe,此时在他的..\lib目录存在相关的jar,则可以执行。------------------------------
    其实这个涉及到java的执行原理,如果classpath没有设置,那么对于jdk,他会寻找自己的相关lib目录的。解决办法:
    1、设置你的path中jdk所在目录在在C:\windows\system前
    2、设置你的Classpath指向e:\j2sdk1.4.2\lib\tools.jar;e:\j2sdk1.4.2\jre\lib\rt.jar:)
      

  3.   

    配classpath要把包名也写上
    E:\Program Files\j2sdk1.4.0\lib\dt.jar;E:\Program Files\Microsoft SQL Server 2000 driver for JDBC\lib\msbase.jar;
      

  4.   

    第一次发帖得到了这么多朋友的回复,不胜感谢。
    特别感谢riverwater大侠,大侠对问题的分析丝丝入扣,一席执行机理的讲解,让我茅塞顿开,对于出现问题的原因分析更是极为精当(好象割包皮你也知道,开个玩笑,不要责怪)。我重新设置了path=e:\j2sdk1.4.2\bin;c:\windows;c:\windows\command;
    classpath=e:\j2sdk1.4.2\bin\tools.jar;e:\j2sdk1.4.2\jre\rt.jar;后程序成功执行。
    问题反思:
    1。我从JAVA网站上的j2se1.4.2-05 documentatio 看到path=c:\windows;c:\windows\command;driver:\jsdk\bin;
    2。我从教程上看到path=%path%;driver:\jsdk\bin;
    在自己的设置过程中,反复出现了path=c:\windows;c:\windows\command;e:\jsdk\bin;说明在win98se的path设置中%path%表示了默认的系统执行目录。同时把classpath=e:\jsdk\bin;程序仍然成功执行。说明path路径设置是关键.再一次对riverwater大侠表示衷心感谢。并对其他的朋友一起表示感谢。
      

  5.   

    我也才学Java
    其实只用配置Path(其它的ClassPth等我通通没有配)
    我的如下
    C:\j2sdk1.4.2_04\bin;.;C:\j2sdk1.4.2_04\lib
    注意中间还有一个小数点代表当前目录