JDK配置问题

huoshouzhen

huoshouzhen

2016-02-19 13:21

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是JDK配置问题,一起来学习了解下吧!

  看到论坛上那么多人问关于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。在我的电脑-》属性-》高级-》环境变量 中,分别添加这三个变量,他们的值分别为:
  
  name value
  java_home c:jdk130
  classpath .;C:jdk13libools.jar;C:jdk13libdt.jar;C:jdk13in;
  path C:jdk13in;
  
  然后确定就可以了。
  
  注解:classpath用于指明所有用于引用的类所在的目录,它答应用户把自己的类放在不同的目录中,但应该让JDK编译工具知道它们在那里。例如:set classpath=.;C:jdk13libools.jar;C:jdk13libdt.jar;C:jdk13in;命令中的第一个圆点指明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.Access$100(URLClassLoader.java:56)
  at java.net.URLClassLoader$1.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 ,这样我们就可以看到运行结果了。
  
  这里有个问题:若是进入目录hello中,然后敲入:java 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.access$100(URLClassLoader.java:56)
  at java.net.URLClassLoader$1.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)
  
  和上面的错误信息一摸一样,不知道该如何解决?大家帮忙看看,为什么进入目录hello中之后,就不能运行编译好的class文件。
展开更多 50%)
分享

猜你喜欢

JDK配置问题

编程语言 网络编程
JDK配置问题

WindowsXP 下 JDK 的配置

编程语言 网络编程
WindowsXP 下 JDK 的配置

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

JDK安装配置教程

电脑
JDK安装配置教程

Windows 2000中如何配置JDK

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

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Jdk和Tomcat的安装与配置

编程语言 网络编程
Jdk和Tomcat的安装与配置

tomcat及jdk安装配置文档

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
tomcat及jdk安装配置文档

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

查句柄知多少

查句柄知多少

小知识,如Form淡出、捕捉Form最小化

小知识,如Form淡出、捕捉Form最小化
下拉加载更多内容 ↓