Java环境的搭建

本文详细介绍了Java开发环境的搭建步骤,包括jdk、jre、jvm的配置,展示了如何打造个性化Java启动器,以及Java程序的执行流程。同时提供了在不同操作系统下(如Windows、Linux)设置环境变量的指南,还介绍了如何在Eclipse中设置项目使用的JDK版本,以及如何查看当前Java运行环境的版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


======================================================
注:本文源代码点此下载
======================================================

首先我们应该对 jdk,jre,jvm 有所认知,下面这个图就可以清晰的表述他们的关系:

jdk,jre,jvm 的关系

一个更复杂的图:这是 j2se 1.5具体功能图表,在图的左边,我们可以清晰的看出哪些是jvm的范畴,哪些是jre的范畴,哪些是jdk的范畴。

java程序的执行逻辑

下面图演示的是如何打造一个个性化的java启动器,这对我们理解java执行的逻辑很有帮助。下图是以window环境打造个性化的java启动器的例子。

这幅图来自: 打造个性化java启动器

最常见的启动器是sun在java runtime environment的/bin目录中提供的启动器,就windows平台而言,它们是java.exe和javaw.exe。前者运行时打开两个窗口:一个是接收system.out/err和启动器输出的控制台窗口,另一个是java程序本身的窗口;javaw运行时不打开控制台窗口。

在j2se/ee平台中,虚拟机以动态库的形式实现,也放在/bin目录下。动态库的名字在windows中是java.dll,在unix中是java.so。所谓“装入虚拟机”,就是指装入这个动态库。

找这个动态库的逻辑是依次按照下面搜索先后顺序去寻找:

先找当前目录下有没有jre

再找父目录下有没有jre

接着在path路径中找jre

注册表hkey_local_machine\software\javasoft\java runtime environment\ 查看currentversion的键值指向哪个jre(这当然是windows下特有的。)

这不像 .net ,.net 引入了全局应用缓存(gac),一台机子,一个版本的 .net framework 就只有一套,就在gac中,不用考虑这个寻找逻辑。

jre 类库的寻找

jre自带的基础类库主要是jre\lib\rt.jar这个文件,包括了java2平台标准版的所有类库。和jre的版本一致。

jre中由classloader负责查找和加载程序引用到的类库,基础类库classloader会到rt.jar中自动加载,其它的类库,classloader在环境变量classpath指定的路径中搜索,按照先来先到的原则,放在classpath前面的类库先被搜到.

java程序启动之前建议先把path和classpath环境变量设好。os通过path来找jre,确定基础类库rt.jar的位置。jre的classloader通过classpath找其它类库。

jdk 的安装

去 http://java.sun.com/javase/downloads/index.jsp 下载最新版本 jdk。 下载后安装。

windows 下安装完毕后需要设置三个环境变量

java_home

指明jdk安装路径,就是刚才安装时的路径c:\program files\java\jdk1.6.0_19,此路径下包括lib,bin,jre等文件夹(此变量最好设置,因为以后运行tomcat,eclipse,ant 等都需要使用此变量)

path

path使得系统可以在任何路径下识别java命令,设为:

%java_home%\bin;%java_home%\jre\bin

classpath

classpath为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别,设为:

.;%java_home%\lib;%java_home%\lib\tools.jar

(要加.表示当前路径)

%java_home%就是引用前面指定的java_home。

linux 下则是要做如下设置(以我使用的 ubuntu 为例):

下载完后,我们就开始安装了。(我们假设下载后的文件名为jdk1.6.bin)

在命令行下打开其所在文件夹,打chmod u+x ./jdk1.6.bin(更改可执行权限:u 表示该档案的拥有者,+ 表示增加权限,x 表示可执行)

然后./jdk1.6.bin

看到协议,一直敲down键或者enter键(协议还挺长的)

最后看到

do you agree to the above license terms? [yes or no]

寻问是否接受,当然是打y 回车拉~

然后就看到它解压缩

解压缩完后的默认文件名是jdk1.6.0

接着打

sudo cp –rjdk1.6.0 /usr/(cp -r : 递归持续复制,用于目录的复制行为。)

把它复制到usr目录里去

好了,到这里就只差配置环境了

export java_home=/usr/jdk1.6.0

export classpath=$classpath:$java_home/lib:$java_home/jre/lib

export path=$java_home/bin:$java_home/jre/bin:$path:$homr/bin

打vi ~/.bashrc(vi 的命令参看:http://yanxi.bokewu.com/blog93673.htm)

进入用户环境变量配置界面中,把上面的三行加入到最后,esc,:wq

保存并退出

这样jdk就算配置好了~

参看:

http://forum.ubuntu.org.cn/viewtopic.php?f=44&t=174375

http://forum.ubuntu.org.cn/viewtopic.php?t=39742

http://www.360doc.com/content/08/1012/12/61497_1749889.shtml

http://forum.ubuntu.org.cn/viewforum.php?f=70

之后我们就可以写一个超简单的java程序。

依次: javac test.java

java test

来测试是否可以正常运行。

eclipse 中我们也可以设置jdk的版本,

在我们的项目上右键properties –> java compiler中将 –>compiler compliance level 设成我们需要的版本即可。

需要注意的是:eclipse不自带jdk,它只需要jre就可以运行(不需要javac),因为它自带编译器(plugin目录里有compile包)。

在运行时,则是由于jre安装时已经在环境中添加java这个命令(无论windows还是linux),eclipse便利用它启动startup.jar。但如果只用jre,因为没有源代码,eclipse就不能根据源码生成库中type的注释了。

如何查看当前java运行环境的版本?

在命令行下面使用 java -fullversion 可以对当前版本的。

参考资料:

jdk,jre,jvm,三者的区别与联系

http://www.blogjava.net/jzone/articles/271115.html

sdk、jdk、jre和jvm的关系总结

http://blog.youkuaiyun.com/achun2050/archive/2007/05/08/1600370.aspx

初步总结clr和jre运行机制

http://developer.51cto.com/art/200910/158035.htm

如何让java运行在指定版本的jre中。

http://hi.baidu.com/blueleopard/blog/item/cd46d4f9e5b91e5c252df286.html

怎样运行java程序

http://wenwen.soso.com/z/q131473345.htm

java程序运行机制及运行过程

http://www.cnblogs.com/xiaoqcn/archive/2010/01/26/1656394.html

关于jdk

http://blog.youkuaiyun.com/yqj2065/archive/2005/02/28/305593.aspx

打造个性化java启动器

http://www.pconline.com.cn/pcedu/empolder/gj/java/0404/346719.html

linux系统下运行java程序 jre安装和配置

http://tech.ddvip.com/2007-08/118717162731923.html

jdk、jre、jvm之间的关系

http://www.cjsdn.net/post/view?bid=1&id=9965&sty=1&tpg=1&age=0

jdk下载安装及其环境变量配置

http://www.svn8.com/java/pz/20080531/729.html

eclipse的编译器和sun的javac还真不太一样

http://www.javaeye.com/topic/318996

eclipse设置项目jdk的问题

http://tech.ddvip.com/2008-12/122855371598107.html


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值