免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9117 | 回复: 5
打印 上一主题 下一主题

关于jdk和jre环境设置的一些经验共享 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-16 01:54 |只看该作者 |倒序浏览
jdk和jre的环境问题,是很多java新手的一大障碍,大多数学习java的人,或多或少的都遇到过一些环境设置的问题,那个恼人的ClassNotFound始终是挥之不去的阴影。我自己已经很久没有遇到过这个问题了,我把自己在配置这个方面的经验与大家共享,希望能够帮助大家更好的促进的java环境的理解,少花时间在配制恼人的环境上,可以更快得集中到应用开发中去。

刚开始学java,也是在windows平台上,由于用的环境并不复杂,所以基本上没有遇到很多麻烦,后来到了Linux上的时候发现其实环境配置比我想象的简单多了,通过在linux上的java环境的配置,让我更直接的理解了java对环境的要求,把这些技巧用到windows上来,发现同样也适用。所以我就从linux讲起吧。

jdk和jre的安装,在linux下,最简单的是下载self-extract的安装包,其实就是一个文件,在linux下文件执行需要被赋予执行的权限,所以可以用chmod命令

chmod +x j2sdk1.5.0.03.bin

然后输入

./j2sdk1.5.0.03.bin
就开始执行,在自解压之前,会出现license信息,要你按空格往下翻到最后一页,然后输入yes回车表示接受这个license,就开始解压,解压完了,就在当前目录下创建了j2sdk1.5.0_03这个目录。JAVA_HOME理论上可以是任何普通目录,当然,如果你安装以后希望系统中的任何用户都可以用,就放在一个公共区域,而不是私人区域,比如我的放在 /usr/local/java 下面, 有的系统放在 /opt/java 下面。

很多开发工具和应用软件真正需要的一个环境变量叫做JAVA_HOME,你可以把JAVA_HOME指向你jdk的解压目录,在linux下,可以输入以下命令

export JAVA_HOME=/usr/local/java/j2sdk1.5.0_03

然后把java的可执行文件加入到path
PATH=$JAVA_HOME/bin:$PATH

这样,基本上你的java的应用,开发工具运行都没什么大问题了。如果你希望以开机就自动设置这样的环境,可以把它放到你的.bash_profile里面,如果你是管理员,希望所有用户都能用这个环境,把它放到 /etc/profile 等等公共的profile设置就可以了。如果你默认的shell不是bash,可能命令和配置文件的名字有所不同,但是基本概念是一样的。要特别注意的是在linux/unix下面变量名和目录/文件名是大小写敏感的!

这样做有一个好处,就是你的系统中可以同时存在多个不同版本的JDK,有的时候我的确需要这种转换。比如,我以前开发的一些应用在jdk1.4下面开发的,现在总体环境都升到1.5了,由于1.5增加了一些新的保留字,以前1.4可以使用的一些方法和名称现在不能用了,最典型就是enum,如果你用jdk1.5编译则不能通过,如果修改代码以适应新版本则工作量太大,所以旧程序的改进我希望在1.4下面进行。由于1.5下仍然可以使用旧版本编译好的class(我讨厌.net的理由之一是新版本的环境不能使用旧版本已经编译好的dll,必须修改代码以完全符合新版本的要求重新编译成新的dll才能使用,如果你原来用的dll不是open source的,嘿嘿...),所以我只要能重新恢复到旧版本进行修改和编译以前旧的软件包就可以了。在这种情况下,我只要修改JAVA_HOME指向到另一个版本的JDK所在的目录,然后直接启动任何编辑工具netbeans或者eclipse,修改完了编译通过,然后改回JAVA_HOME就可以了,让多个版本的JDK共存是非常简单的。

事实上在windows下面我也是这么做的。
用右键点“我的电脑”,选择“属性”,然后切换到“高级”,下面有个“环境变量”按钮,在“系统变量”里面创建一个,起名为JAVA_HOME,然后值就是你的jdk安装的目录,我的是C:\Program Files\Java\jdk1.5.0_03
然后在“用户变量”里面,寻找PATH,如果没有,则创建一个,输入%JAVA_HOME%\bin ,需要注意的是你要用%JAVA_HOME%只有在用户变量才有效,在系统变量中使用%JAVA_HOME%似乎没有作用。

这样,当我需要旧版本的时候,只要在dos窗口中输入SET JAVA_HOME=c:\j2sdk1.4.2_06 就可以了.
修改过环境变量以后重新启动相关的应用,或者重新打开dos窗口就可以生效了(修改之前就打开的dos窗口当然不会生效)

这种环境变量的设置还可以用于ant,在系统变量里面设置ANT_HOME,在用户变量里面增加PATH的值 %ANT_HOME%\bin

如果你使用了第三方包的话,我不建议放在%JAVA_HOME%\jre\lib\ext 下面,因为万一升级jdk的话,你就必须copy这些第三方包到新的目录下去。

要特别注意的是PATH,因为你的系统中可能存在不同版本的java,可能你从sun网站上下载了jre或者jdk,也可能你安装了jbuilder,里面带了另外一个版本的jre或者jdk,还有ibm的jikes,等等,这就造成了一个混淆。你必须要打开一个dos窗口输入java -version看看你到底用的是哪个jre,很多时候由于你开发用的jre和运行用的jre版本不同造成了很多困扰,所以有必要清理一下你的环境变量以解决这些混淆的问题,确保你的开发环境和运行环境使用相同的jre

CLASSPATH问题:
我从来不在我的系统环境变量里面设置CLASSPATH,因为很多时候每个应用程序使用的CLASSPATH是不同的,尤其是你在特定的应用服务器下面,配置更是不同。所以复杂的程序,就用ant来管理启动,ant可以设置自动从指定的目录下load class,以及自动导入所有的jar,非常方便。如果要交付,就设计一个bat来启动,(象tomcat之类的服务器程序),还可以用jsmooth编译成exe 或者也可以用wrapper http://wrapper.tanukisoftware.org/把程序包装为一个exe启动甚至是windows的系统服务。关于这些第三方工具的使用以后我逐渐发帖与大家共享。

附一个讲CLASSPATH设置的帖子
http://bbs.chinaunix.net/viewthread.php?tid=719110

[ 本帖最后由 perryhg 于 2006-3-18 00:31 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2005-05-17 00:08 |只看该作者

关于jdk和jre环境设置的一些经验共享

谢谢楼主的讲解,对于我们这些新来的还是很有帮助的,希望以后多发!!!

论坛徽章:
0
3 [报告]
发表于 2005-05-18 08:51 |只看该作者

关于jdk和jre环境设置的一些经验共享

论坛徽章:
0
4 [报告]
发表于 2006-03-03 12:19 |只看该作者

论坛徽章:
0
5 [报告]
发表于 2006-07-26 11:12 |只看该作者
昨天刚开始接触JAVA..看到楼主的贴终于能HELL WORLD了..

论坛徽章:
0
6 [报告]
发表于 2006-12-12 14:59 |只看该作者
出现如下错误怎么解决?
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP