网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Java安装的最新方法.
.Java如何处理ICMP报文的收发.
.把P2P进行到底:讲述Jxta的故事(.
.用Java实现HTTP文件队列下载.
.Struts开发指南之Taglib的初步了.
.TOMCAT与Resin之我的见解.
.java线程简介(同步详细信息).
.用 Spring MVC 轻松进行应用程序.
.Java学习之神奇的i=i++.
.在网页里做类似window右键的弹出.
.Java的复杂数据类型.
.后向引用.
.Struts 用户指南(三).
.Android支持Java语法编程未承诺遵.
.Java 2中的Collections框架 -- M.
.用jfreechart来生成统计图表.
.使用JRockit 5.0运行BEA&nb.
.用Java编写的记事本程序.
.一个生产-消费模式的XML解析实现.
.了解Struts1.1介绍.

JDK配置问题

发表日期:2008-1-5



  看到论坛上那么多人问关于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:jdk13lib ools.jar;C:jdk13libdt.jar;C:jdk13in;
path C:jdk13in;

然后确定就可以了。

注解:classpath用于指明所有用于引用的类所在的目录,它答应用户把自己的类放在不同的目录中,但应该让JDK编译工具知道它们在那里。例如:set classpath=.;C:jdk13lib ools.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文件。
上一篇:Java中配置信息的存取 人气:775
下一篇:Cocoon2的安装 人气:583
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐