QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1569|回复: 13

★★redhat linux 编译JAVA出错!!!★★

[复制链接]
发表于 2005-10-1 18:35:18 | 显示全部楼层 |阅读模式
已经设置好了环境,具体如下
export CLASSPATH=/usr/java/j2sdk1.4.2_09/lib/dt.jar:/usr/java/j2sdk1.4.2_09/lib/tool.jar
export PATH=$PATH:/usr/java/j2sdk1.4.2_09/bin

echo $CLASSPATH
CLASSPATH=/usr/java/j2sdk1.4.2_09/lib/dt.jar:/usr/java/j2sdk1.4.2_09/lib/tool.jar

echo $PATH
PATH=sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/usr/java/j2sdk1.4.2_09/bin

然后写了一段测试代码
/*two 源代码如下*/
public class two {
public static void main(String args[]) {
                System.out.println("you name is kin");
        }
}
~
~
~编译没有问题
javac two.java//没问题
但是java two的时候就出现如下错误
Exption in thread "main" java.lang.NoClassDefFoundError: two
而且这些操作始终在同一个目录下执行

于是我把文件拿到usr/java/j2sdk1.4.2_09/bin下面编译还是没问题,但就是
java two的时候还是出错,我想我的环境应该设置的没问题,文件名也和public class中的一样,请问到底什么原因啊??
发表于 2005-10-1 22:41:05 | 显示全部楼层
which java
回复

使用道具 举报

发表于 2005-10-2 03:48:58 | 显示全部楼层
CLASSPATH里没有当前目录。
回复

使用道具 举报

 楼主| 发表于 2005-10-2 10:15:08 | 显示全部楼层
to 楼上

我等会再试一试,我觉得对JAVA目录的问题还是搞得比较清楚的。难道在CLASSPATH中也要把当前目录放进去吗??而且我的测试程序里面又没有使用import保留字,应该说不用寻找CLASSPATH下的目录巴,如果我源程序使用了import关键字的话,并且使用的是JDK提供的库函数的话,它才会去找CLASSPATH下的.jar文件
如果我使用的是自己定义的类的话,比如说package myclass;这时候它才会去寻找CLASSPATH下的东西。
因此我的理解的就是如果没用import 关键字的话,它应该不会去寻找CLASSPATH下的东西,难道我的理解一直以来是错误的,还是在LINUX下配置JAVA环境是和WINDOWS不一样???
回复

使用道具 举报

 楼主| 发表于 2005-10-2 10:45:22 | 显示全部楼层
已经按照kakuyou的要去改动了CLASSPATH了,但是还有问题。请看我的目录
#pwd
/root/home/my

#ls -lt
总用量 12
-rw-r--r--    1 root     root           14 10月  2 10:24 log.txt
-rw-r--r--    1 root     root          380 10月  1 18:07 myenv.txt
-rw-r--r--    1 root     root          115 10月  1 18:02 two.java//这个JAVA的SRC上面已经给出

#echo $CLASSPATH //已经把当前的目录加上去了
/usr/java/j2sdk1.4.2_09/lib/dt.jar:/usr/java/j2sdk1.4.2_09/lib/tool.jar:root/home/my
#echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/usr/java/j2sdk1.4.2_09/bin


#javac two.java  //编译没有问题,用ls查看一下正确生成two.class

#ls -lt
总用量 16
-rw-r--r--    1 root     root          423 10月  2 10:26 two.class
-rw-r--r--    1 root     root          307 10月  2 10:25 log.txt
-rw-r--r--    1 root     root          380 10月  1 18:07 myenv.txt
-rw-r--r--    1 root     root          115 10月  1 18:02 two.java

#java two
Exption in thread "main" java.lang.NoClassDefFoundError: two //出错,老样子
================================================================
说明我的理解没错。没有把当前目录放到CLASSPAHT下根本不是问题。
回复

使用道具 举报

发表于 2005-10-2 18:30:21 | 显示全部楼层
which java
回复

使用道具 举报

发表于 2005-10-2 19:34:52 | 显示全部楼层
英文不懂?

类没找到啊。

java运行时是从CLASSPATH里找类的,包括你的程序。
回复

使用道具 举报

 楼主| 发表于 2005-10-2 21:31:05 | 显示全部楼层
楼上的,不要纸上谈兵好哇??那你说说看怎么改!!!
回复

使用道具 举报

 楼主| 发表于 2005-10-3 08:24:14 | 显示全部楼层
已经搞定了

什么CLASSPATH出错,告诉你吧,明明是linux自带一个java和我装的冲突,用whick java一看就知道了,然后把自带的那个JAVA删除就可以了!!!根本不用改什么classpath。

所以不懂就旁边看着,不要误导别人!!!!
回复

使用道具 举报

发表于 2005-10-3 17:27:32 | 显示全部楼层
楼上的,版主不是告诉你解决方法了吗?为何还骂人!
回复

使用道具 举报

发表于 2005-10-3 21:54:39 | 显示全部楼层
[quote:05dc8025a8="难忘的明天"]已经搞定了

什么CLASSPATH出错,告诉你吧,明明是linux自带一个java和我装的冲突,用whick java一看就知道了,然后把自带的那个JAVA删除就可以了!!!根本不用改什么classpath。

所以不懂就旁边看着,不要误导别人!!!![/quote]
这不叫不懂,仅仅帮你猜测而已,CLASSPATH只是一种可能。我一开始就叫你which java,你自己干什么去了。
回复

使用道具 举报

发表于 2005-10-3 22:39:07 | 显示全部楼层
[quote:434860bd34="难忘的明天"]已经搞定了

什么CLASSPATH出错,告诉你吧,明明是linux自带一个java和我装的冲突,用whick java一看就知道了,然后把自带的那个JAVA删除就可以了!!!根本不用改什么classpath。

所以不懂就旁边看着,不要误导别人!!!![/quote]

说实话,我写java写过2年,后来转c,c++了,最难的移植过
1.1到1.2的程序,当时java就是必须设当前目录,否则一定C
lassNotFound,当年费尽苦心彻底搞清楚了CLASSPATH和
interface的设计理念。

不好意思,没能提供有用的帮助,可能我的java知识过时了。不
过,这里只是个论坛,大家只是提供线索,解决问题还要靠自己。
回复

使用道具 举报

发表于 2005-10-4 21:28:18 | 显示全部楼层
我遇到了同样的问题,是JAVA的初学着,环境变量也设好了,就是不能java 类名
Exception in thread "main" java.lang.NoClassDefFoundError: 类名
不知道到底怎么回事,也是XP系统.请叫还有什么会导致这种情况!!!
回复

使用道具 举报

发表于 2005-10-5 11:29:11 | 显示全部楼层
刚刚在同学那装上一样的j2sdk-1_4_2_04-nb-3_6-bin-windows-ml.exe确能用java是不是64位上的处理器不能用这个东西啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-5 01:58 , Processed in 0.045403 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表