用户工具

站点工具


doc:j:java_environment

配置Java环境

简述

Java最早于1998年引入 FreeBSD。

通常我们使用的 JDK 是来自 Sun 的 JDK。由于授权的原因,目前JDK需要手工下载之后才能安装。

在FreeBSD平台上,最新版本的JRE/JDK为:Diablo JRE/JDK 1.5.0-7。

在FreeBSD中你可以使用多种方式来安装JDK:

  • 使用Linux模拟环境来运行For Linux版本的Sun/IBM JDK(以下简称Linux JDK)
  • 使用freebsdfoundation提供的binaries package来安装JDK(以下简称Binaries JDK)
  • 使用ports来安装JDK(以下简称Ports JDK)


这里你可以自己选择使用哪种方式:

方式优点缺点
Linux JDK可以作为排除问题时的参考它不是FreeBSD本地代码,需要安装Linux二进制兼容环境如Fedora;有时Linux JDK会有一些bug
Binaries JDK (“Diablo JDK”)下载就可以安装,不需要编译器,安装速度很快没有编译的快感,也不能设定编译时的一些参数;有时Diablo JDK也会有一些bug,由于认证需求无法及时更新
Native JDK版本最新,将来升级会简单,在编译时能有自己定义的能力需要很久的时间和比较多的磁盘空间,也许你应该考虑在晚上睡觉前开始这个工作

一般而言,由于已经有了 Diablo JDK,现在已经不再推荐在 FreeBSD 上透过 Linux 仿真来使用 Linux JDK 了。

以下就JDK在FreeBSD上的安装方法进行分别的说明,希望你能找到适合你的方法安装一个好用的FreeBSD JDK。

通过 ports 来安装 Diablo JDK

这是一个非常快速的方法,因为除去下载的时间,你只需要两分钟就完成了一个可以使用的JDK环境。如果使用 FreeBSD 6.x,则推荐使用这种方法。

注意:Diablo JDK 在 FreeBSD 7.x 上运行时 可能 会有一些问题,这时,可以用它作为boostrap JDK来编译自己的native JDK。

通常安装 Diablo JDK 时,应使用 ports 来进行安装。这主要是因为几个原因:

  • 有时,需要对 Diablo JDK 进行小幅度的调整,例如更新时区数据等等。如果只是下载 FreeBSD 基金会提供的 package 直接安装,则没有这方面的好处。
  • ports会帮你搞定 Diablo JDK 所需的全部依赖关系。
  • ports安装几乎和直接pkg_add一样快。

首先,我们需要同步 ports tree;随后,进入 ports/java/diablo-jdk15,并执行:

make checksum

这时,ports系统会检查当前的 distfiles 目录(通常是 /usr/ports/distfiles)中是否已经有了所需的文件。如果没有的话,ports会提示你到指定的地点下载相关的文件并放到 /usr/ports/distfiles 目录中。

首先你需要知道FreeBSDFoundation的Java下载页面,这里提供了现在可以使用的多个JDK的版本,在每一个版本上我们都可以得到Packages和Tarballs两种形式的版本。使用 ports 方式安装时,应下载 tarball 格式的版本。 package 格式的版本的可执行文件,与tarball格式中的可执行文件是完全一样的。ports会判断你使用的架构名称,并告诉你需要下载的文件名字。但是自FreeBSD 8.0之后,由于授权问题,已经不提供已编译好的二进制版本的针对FreeBSD 8的JRE/JDK下载,若要在FreeBSD 8.0以上版本中使用Java,必须自行编译。

确认无误之后,请再次执行:

make checksum

以便让 ports 系统确认文件的完整性。如果没有问题,我们就可以安装它了:

make install clean

这样,ports系统会自动完成所需的全部操作。

使用Ports来安装Native JDK

我们常说的 Diablo JDK,实际上是 FreeBSD 基金会根据 native JDK 来进行联编,并获得了 Sun 认证的版本。与其他二进制形式的包,如 Linux JDK 类似,作为预编译的版本,尽管其拥有节省时间、便于使用的优点,但是在发生一些小bug时,这些版本未必会及时跟进更新。

与此相反,FreeBSD本身的 native JDK 开发团队也在活跃地维护着一个以源代码编译方式的 port,这个 port 会经常跟进 BSD Java Porting Project 的最新 patchset。由于目前 Sun JDK 编译时要求已经有一个可用的 JDK 版本,因此你需要首先安装一个 JDK,这个 JDK 可以是 native JDK,也可以是 Diablo JDK 或 Linux JDK。接下来,就可以开始编译了。

首先同步 port,然后到 /usr/ports/java/jdk15 中执行 make install clean。在这个过程开始时,ports系统会告诉你去两个地方分别下载 Sun 提供的源代码、源代码 binary、Mozilla 头文件和时区定义更新,以及 EyesBeyond 提供的 BSD Java Patchset。整个过程需要大约2GB的剩余磁盘空间,并需要大量的内存。

制作 package

由于 Sun 授权的限制,我们不能对外直接发布 native JDK 的 package。但是对于企业用户而言,如果有很多机器都需要安装 native JDK,一台一台地编译是一件十分耗时,而且很不环保(浪费电,并促进全球变暖)的事情。想要制作 package,可以在 /etc/make.conf 中加入:

FORCE_PACKAGE=yes

然后就可以使用make package,或 portupgrade -p 来制作 package了。

/data/vhosts/wiki-data/pages/doc/j/java_environment.txt · 最后更改: 2010/12/22 18:26 由 HiLoveS