网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  jdk配置问题     
  文章作者:未知  文章来源:水木森林  
  查看:104次  录入:管理员--2007-11-17  
 
  看到论坛上那么多人问关于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文件。
 
 
上一篇: jdk开发工具包    下一篇: jdo genie 1.3 发布了!
  相关文档
在java中连接sybase数据库 11-17
while 语句 11-16
java web framework综述 11-17
j2ee中xml配置文件的读取处理 11-16
tomcat 的数据库连接池设置与应用 11-17
用eclipse进行xml开发 11-17
网友分享:构建高性能j2ee应用的10个技巧 11-06
j2ee开发购物网站解析(1) 11-16
找到打包jre使jbuilder生成exe文件运行 11-17
多线程编程的设计模式 临界区模式 11-17
jsp、servlet中的相对路径和绝对路径 11-17
j2se综合:浅析java语言中两种异常的差别 01-11
关于refactoring思考 11-17
单例设计模式在java中的应用 11-17
开源面向对象数据库db4o之旅:初识db4o 11-17
实现java平台的三种方式v 11-17
配置jboss4jdbc连接 11-17
21天学通j2ee4 11-17
编程:java swing在反射编程中的应用 11-16
string和stringbuffer之概览 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息