当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : NoClassDefFoundError,Ubuntu下JAVA编译环境的设定(ZZ)
帖子发表于 : 2006-03-26 15:15 
头像

注册: 2005-09-01 20:48
帖子: 510
送出感谢: 0 次
接收感谢: 0 次
Java学了两年多了,总共没有用命令行编译过几次,还都是在学校设好的环境下,自己电脑上也都是用IDE。结果前些天在Ubuntu下试着用vim运行一个编译好的JAVA程序,出了这个NoClassDefFoundError,让我花了不少时间才搞定。

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

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

下面言归正传,谈谈我找到的解决办法。首先Ubuntu中文论坛上已经有了一篇文章,我却一直没有太仔细的看,走了不少弯路,实际上我的解决办法基本就是从这里找到的:http://forum.ubuntu.org.cn/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/williamkin/archive/2005/11/21/1601.aspx
关于JDK和JRE的安装,参考这里的文章:
http://forum.ubuntu.org.cn/viewtopic.php?t=6457

本人对这个问题目前还只是一知半解,希望对大家有所帮助,同时欢迎指正和讨论。


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2006-03-30 9:47 

注册: 2006-03-16 11:25
帖子: 36
送出感谢: 0 次
接收感谢: 0 次
直接装个sdk就可以了,干吗把jdk,jre分开装了

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

现在运行 lumaqq,MyEclipse都可以.很正常.


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2006-03-30 17:59 
头像

注册: 2005-09-01 20:48
帖子: 510
送出感谢: 0 次
接收感谢: 0 次
hallywang 写道:
直接装个sdk就可以了,干吗把jdk,jre分开装了

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

现在运行 lumaqq,MyEclipse都可以.很正常.

我的电脑是先装的JRE,后装的JDK,出现了这个NoclassdefErro,当时我得lumaqq,Eclipse都是能够直接运行的。你可以试试命令行编译运行一下java程序,要是没问题,就证明你的方法可行,不然可能还是要手工设置。我自己也不清楚我需要手工设置Java编译环境是特殊情况还是普遍情况。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2006-03-30 21:00 
头像

注册: 2005-10-19 17:33
帖子: 2052
送出感谢: 0 次
接收感谢: 0 次
直接去sun下载,什么事儿都没了。搞这么多搞的很无聊的。开发应该知道确切地路径等配置问题。不要什么都一来apt,那是方便用户用的


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2006-03-31 18:23 
头像

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


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2006-03-31 18:39 
头像

注册: 2005-06-11 14:03
帖子: 6226
地址: 不明真相的群众
送出感谢: 0 次
接收感谢: 0 次
没关系,楼主这样记录是很好的,我以前就很不喜欢记笔记,现在就记了,把笔记放在网上,对别人有帮助是最好,即便是对别人没有帮助,对自己还是有帮助的。


_________________
我的blog,关于技术,软件,linux,vim <---- 所有博客均被河蟹.


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译