NoClassDefFoundError,Ubuntu下JAVA编译环境的设定(ZZ)

软件和网站开发以及相关技术探讨
回复
头像
paul
帖子: 510
注册时间: 2005-09-01 20:48

NoClassDefFoundError,Ubuntu下JAVA编译环境的设定(ZZ)

#1

帖子 paul » 2006-03-26 15:15

Java学了两年多了,总共没有用命令行编译过几次,还都是在学校设好的环境下,自己电脑上也都是用IDE。结果前些天在Ubuntu下试着用vim运行一个编译好的JAVA程序,出了这个NoClassDefFoundError,让我花了不少时间才搞定。

虽然已经知道是编译环境设定的问题,可是具体在哪里设,怎么设,设好之后怎么检查设定是否正确,还有设好之后是否要重启等等都要学习加实验。结果是昨天晚上花掉了我一晚上的时间。

首先,解决方法可能很多,我在网上看到过改.bashrc的,还有改.bash_profile的,/etc/bash.bashrc ,应该都可行,有兴趣研究的话可以参考如下我当时找到的链接:
http://www.ubuntuforums.org/showthread. ... FoundError
http://www.cjsdn.net/post/view?bid=1&id=167881
还有中国科大BBS精华区的一篇文章,抱歉网址找不到了,只知道发信人是Flying_Sword(刀剑如梦)

下面言归正传,谈谈我找到的解决办法。首先Ubuntu中文论坛上已经有了一篇文章,我却一直没有太仔细的看,走了不少弯路,实际上我的解决办法基本就是从这里找到的:viewtopic.php?t=6941

1。确定CLASSPATH是否正确

代码: 全选

echo $CLASSPATH
我配置好的输出是这样:
${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:.
2。看看上面的JAVA_HOME是否正确

代码: 全选

echo $JAVA_HOME
输出:
/usr/lib/j2sdk1.5-sun
(取决于你JDK的安装目录)

如果这两部分正确,应该就没问题了,如果不正确或有疑问,照这里配置:

1。首先,可以照Laborer的方法试验一下:

代码: 全选

$ export JAVA_HOME=/usr/lib/jdk1.5
$ export CLASSPATH=${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:/home/robin/javadir
(这里的JAVA_HOME要参考你自己JDK实际的安装目录处理,最后一个目录是用户自建的目录,我是用.代替)

2。要是上一步能够运行HelloWorld,你可以放心去改设定了。

代码: 全选

gedit ect/environment
我这里改完是这样:
LANGUAGE="zh_NZ:zh_CN:zh:en_US:en"

JAVA_HOME=/usr/lib/j2sdk1.5-sun

CLASSPATH=${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar:.

LANG=zh_CN.UTF-8
3。改完后需要退出重新登陆。

要是上面第一步测试还是不行,可以试:

1。

代码: 全选

sudo update-alternatives --config java
选择使用哪个JAVA。
个人认为,这个只是设定run time java,和这里我们的问题关系不大,我之前设成JRE的安装目录一样没问题。

2。检查一下你的JRE和JDK的安装版本是否一致。网上有人提到了这个问题,我不能验证,因为我的两个都是最新的版本,不过以上都方法不行的话可以试一下,参考以下文章:http://community.hf-mstc.org/cs/blogs/w ... /1601.aspx
关于JDK和JRE的安装,参考这里的文章:
viewtopic.php?t=6457

本人对这个问题目前还只是一知半解,希望对大家有所帮助,同时欢迎指正和讨论。
hallywang
帖子: 36
注册时间: 2006-03-16 11:25

#2

帖子 hallywang » 2006-03-30 9:47

直接装个sdk就可以了,干吗把jdk,jre分开装了

sdk里面有jre的
我就是只装了一个j2se5.0

现在运行 lumaqq,MyEclipse都可以.很正常.
头像
paul
帖子: 510
注册时间: 2005-09-01 20:48

#3

帖子 paul » 2006-03-30 17:59

hallywang 写了:直接装个sdk就可以了,干吗把jdk,jre分开装了

sdk里面有jre的
我就是只装了一个j2se5.0

现在运行 lumaqq,MyEclipse都可以.很正常.
我的电脑是先装的JRE,后装的JDK,出现了这个NoclassdefErro,当时我得lumaqq,Eclipse都是能够直接运行的。你可以试试命令行编译运行一下java程序,要是没问题,就证明你的方法可行,不然可能还是要手工设置。我自己也不清楚我需要手工设置Java编译环境是特殊情况还是普遍情况。
头像
猛将兄
帖子: 2052
注册时间: 2005-10-19 17:33

#4

帖子 猛将兄 » 2006-03-30 21:00

直接去sun下载,什么事儿都没了。搞这么多搞的很无聊的。开发应该知道确切地路径等配置问题。不要什么都一来apt,那是方便用户用的
头像
paul
帖子: 510
注册时间: 2005-09-01 20:48

#5

帖子 paul » 2006-03-31 18:23

看起来麻烦,实际上步骤非常简单,写了这么多,只是希望能帮助出现同样问题的兄弟解决问题。之所以费事在这里又贴了一遍帖子,是看到之前有兄弟发贴要求一篇比较详细的介绍CLASSPATH配置的问题,这种问题,高手可能不是问题,不过象我这样的新手,在网上找来找去,一时半会还找不到正解,所以希望其他新手之后碰到同样问题能省点时间。
其实Ubuntu这里百分之九十以上的问题都是这种搞来搞去很无聊的问题,怎么上网,怎么配显卡,怎么装驱动,现在又来了,怎么配置Java,Windows用户过来看了,可能要笑掉大牙吧,可是大家还是乐此不疲,何解?
发贴的时候感觉还不错,解决了问题,帮助了别人,学到了东西,可是猛将兄的话让我感觉自己是不是很无聊?
头像
karron
帖子: 6226
注册时间: 2005-06-11 14:03
来自: 不明真相的群众
联系:

#6

帖子 karron » 2006-03-31 18:39

没关系,楼主这样记录是很好的,我以前就很不喜欢记笔记,现在就记了,把笔记放在网上,对别人有帮助是最好,即便是对别人没有帮助,对自己还是有帮助的。
我的blog,关于技术,软件,linux,vim <---- 所有博客均被河蟹.
回复