当前位置: 首页 > 图文教程 > Java技术 > Java基础 > Windows 2000中如何配置JDK

Java基础
apatche组件的研究和使用
定时执行任务的三种方法
Java各种路径和参数
我看如何选择java和.net
Java关闭窗体的六种方法
java中容易迷惑的知识点
一个简单Thread缓冲池的实现
Java Swing中键盘事件的处理
解读内存优化编程
Java中Set的深入研究
一套JDOM操作XML文件的Base Class
Java堆和栈的区别
Thread类和Runable接口
java 定时执行任务,java定时器
递归(recursion)
java访问各种数据库连接代码
也谈JAVA值传参和引用传参
(转)一个牛人给java初学者的建议
java gui学习
JNI中文处理问题小结

Java基础 中的 Windows 2000中如何配置JDK


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-29   浏览: 74 ::
收藏到网摘: n/a

  Java初学者往往对如何配置Java开发环境感到迷惑,论坛上也有很多朋友在询问关于JDK配置的问题,特别是配置之后,编译java文件的时候,总是碰到这样一个问题,错误提示为:

  Microsoft Windows 2000 [Version 5.00.2195]
  (C) 版权所有 1985-1998 Microsoft Corp.
  C:\>javac HelloWorld.java
  C:\>java HelloWorld
  Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld

  C:\>

  以上为出错信息,源程序如下:

  class HelloWorld {
  public static void main(String[] args) {
  // Display "Hello World!"
  System.out.println("Hello World!");
  }
  }

  译通过 运行怎么就Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld???????/

  对于以上的问题,大家一贯的解决方法为,把HelloWorld.java文件所在目录的路径加入参数classpath中,如:set classpath=%classpath%;.;……(这里要注意其中的“.;”,一会儿我们做个试验看看到底是什么意思)。我试过了,好像不行,不知道是不是我没有配置好。至于给这个问题解答的网友有没有具体实践过,我不得而知。于是,我自己做了一次尝试。

  我使用Win2000+JDK1.30,在java.sun.com下载j2sdk1_3_0-win.exe,然后点击安装,安装系统默认的路径,安装到c:盘,即:c:\jdk130。安装完成需要配置环境,这涉及到三个参数:path、classpath、java_home。在我的电脑-》属性-》高级-》环境变量 中,分别添加这三个变量,他们的值分别为:

  名称=值

  java_home=c:\jdk130 (安装路径)
  classpath=.;C:\jdk13\lib\tools.jar;C:\jdk13\lib\dt.jar;C:\jdk13\bin;
  path= C:\jdk13\bin;


  然后确定就可以了。

  注解:classpath用于指明所有用于引用的类所在的目录,它允许用户把自己的类放在不同的目录中,但应该让JDK编译工具知道它们在那里。例如:

  set classpath=.;C:\jdk13\lib\tools.jar;C:\jdk13\lib\dt.jar;C:\jdk13\bin;

  命令中的第一个圆点指明classpath当前的工作目录。这个圆点非常有用,当不愿意输入完整的当前目录路径时,可以用它来代替,java程序允许这么做。

  在d:新建子目录java,编写一个java文件,名字叫Hello.java,进入dos模式,进入到目录d:\java,然后敲入javac Hello.java,编译通过。然后可以使用java Hello运行生成的class文件,没有问题,结果正常输出。若是我们在Hello.java文件中的第一句加入:package hello; ,然后编译,没有出现错误,运行时我们会看到如下错误信息:

  Exception in thread "main" java.lang.NoClassDefFoundError: Hello (wrong
  hello/Hello)
  at java.lang.ClassLoader.defineClass0(Native Method)
  at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
  at java.security.SecureClassLoader.defineClass(SecureClassLoader.
  1)
  at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
  at java.net.URLClassLoader.access0(URLClassLoader.java:56)
  at java.net.URLClassLoader.run(URLClassLoader.java:195)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
  at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)

  这时,我们在编译的时候,应该这样:javac -d . Hello.java这样会在当前目录下产生一个新的子目录,目录名字就是hello。

  我们可以用一下两种方法运行编译好的文件,在当前目录下,敲入:java hello/Hello或者java hello.Hello ,这样我们就可以看到运行结果了。