JDK配置问题

2016-02-19 13:21 1 1 收藏

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

【 tulaoshi.com - 编程语言 】


  看到论坛上那么多人问关于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文件。

来源:https://www.tulaoshi.com/n/20160219/1603928.html

延伸阅读
首先下载 android SDK 最新版。不过最新版的 SDK 已经明确声明“The Android SDK archive now only contains the tools. It no longer comes populated with a specific Android platform or Google add-on. Instead you use the SDK Manager to install or update SDK components such as platforms,tools, add-ons, and documentation.”,所...
到网上下载以上三个软件并安装 jdk1.4安装目录:D:/jdk14 Tomcat5.0安装目录:D:/tomcat5 SQL Server2000安装目录默认 /////////////////////////////////////////////// 一、设置环境变量 Classpath D:jdk14libools.jar;D:jdk14libdt.jar; D:omcat5in;D:Program Files Microsoft SQL...
?XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />   1。所先下载J2SDKEE1.3和J2SDK1.4,jakarta-ant1.3, 其中J2SDKEE和J2SDK1.4可以从www.Java.sun.com免费下载。 2。点击安装,我这边是安装在D盘下 3。进行环境设置: 右击我的电脑/属性/高级/环境变量/系统变量 ...
《恐龙猎人》配置及其相关问题 【游戏配置要求】 最低配置: 操作系统: Windows XP/Vista CPU: Pentium 4  2.4 GHz or Equivalent 内存: 1 GB 硬盘空间: 18 GB Free 显卡: 128 MB (nVidia GeForce 6600/ATI Radeon x1300) 声卡: DirectX Compatible 问:12G和5.45G硬盘版无法进入游戏,出现general protection fault怎么办? ...
?XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />   Windows 98/ME: 简单的方法就是运行msconfig,这会显示一个实用程序, 在这里可以设置:      设置项目如下:        Java_HOME=L:JavaJ2SE     //你...

经验教程

589

收藏

24
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部