在c盘根目录下安装了jdk1.5.0_04设置环境变量为
JAVA_HOME:C:\jdk1.5.0_04
CLASSPATH: .;C:\jdk1.5.0_04\lib\tools.jar;C:\jdk1.5.0_04\lib\dt.jar;
PATH:C:\jdk1.5.0_04\bin在c根目录下建立文件test.java
import java.io.*;
public class test{
public static void main(String[] args){
System.out.println("hello");
}
}进入命令提示符下编译
javac test.java
出现以下错误:
java.lang.NullPointerException
        at java.util.Hashtable.put(Compiled Code)
        at java.util.zip.ZipFile.readCEN(Compiled Code)
        at java.util.zip.ZipFile.<init>(ZipFile.java:61)
        at java.util.zip.ZipFile.<init>(ZipFile.java:71)
        at sun.tools.java.ClassPath.<init>(Compiled Code)
        at sun.tools.javac.Main.compile(Compiled Code)
        at sun.tools.javac.Main.main(Main.java:465)
不知道是什么错误,请给点建议

解决方案 »

  1.   

    CLASSPATH:C:\jdk1.5.0_04\lib;C:\jdk1.5.0_04\bin;.
    这样试试看
      

  2.   

    类名第一个字母大写
    public class Test{
    }
      

  3.   

    报的错误是:
    at java.util.zip.ZipFile.readCEN(Compiled Code)
            at java.util.zip.ZipFile.<init>(ZipFile.java:61)
            at java.util.zip.ZipFile.<init>(ZipFile.java:71)搂主确信执行的是上面的test.java文件吗
      

  4.   

    就是weichenggao(一万年太久,只争朝夕)说的!
      

  5.   

    一楼的方法试了一下,不行
    类名也没必要大写
    把环境变量删掉,重新配了一遍就好了
    怀疑是原来classpath和path中原有sybase的变量的原因(系统中原来装有pb)再把环境变量中的path改设为C:\Program Files\Sybase\Jaguar CTS 3.5\bin;C:\Program Files\Sybase\Jaguar CTS 3.5\dll;C:\Program Files\Sybase\Jaguar CTS 3.5\client\dll;C:\Program Files\Sybase\Shared\Sun\JDK118\bin;C:\Program Files\Sybase\Shared\PowerBuilder;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Sybase\SQL Anywhere 7\win32;C:\Program Files\Sybase\PowerDynamo\win32;C:\Program Files\Sybase\Shared\Sun\jdk118\bin;C:\Program Files\Sybase\InfoMaker 8.0\tutorial;C:\Program Files\Sybase\Shared\Web Targets;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;C:\jdk1.5.0_04\bin;
    注意最后一行才是jdk的环境变量
    编译时就会弹出类似****内存不能为读的窗口
    再把jdk的变量改在path中的第一个位置,仍然有这个问题把path删除,重建,将jdk的path写在第一位置,即
    C:\jdk1.5.0_04\bin;C:\Program Files\Sybase\Jaguar CTS 3.5\bin;C:\Program Files\Sybase\Jaguar CTS 3.5\dll;C:\Program Files\Sybase\Jaguar CTS 3.5\client\dll;C:\Program Files\Sybase\Shared\Sun\JDK118\bin;C:\Program Files\Sybase\Shared\PowerBuilder;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Sybase\SQL Anywhere 7\win32;C:\Program Files\Sybase\PowerDynamo\win32;C:\Program Files\Sybase\Shared\Sun\jdk118\bin;C:\Program Files\Sybase\InfoMaker 8.0\tutorial;C:\Program Files\Sybase\Shared\Web Targets;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;
    问题没有了
    神奇,不知道是这台机器的原因,还是其它什么
      

  6.   

    运行的代码肯定是上面所写的test.java
    现在再修改环境变量也复原不了那个编译错误的问题了