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

Java基础
体验Java 1.5中面向(AOP)编程
Java中基于Aspectwerkz的AOP
2004开发技术年度综述之Java世界
JavaBeans程序开发
开发基于Java的图形用户界面
Java加密和数字签名编程
Java应用程序中创建图像
初探Java类加载机制
EJB3.0之实体Bean的继承
javamail收取Hotmail的退信
JavaMail访问Hotmail邮箱
EJB3.0开发之多对多和一对一
EJB 3.0开发指南之多表映射
EJB组件与可重用性的矛盾
J2SE中的序默认序列化
Java操作文本文件的方法
Java多线程编程之限制优先级
EJB 3.0 开发指南之定时服务
J2SE中的序列化之继承
J2SE中的序列化的认识

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-29   浏览: 78 ::
收藏到网摘: 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 ,这样我们就可以看到运行结果了。