常见问题常见问题   搜索搜索   会员列表会员列表   团队团队   注册注册    个人资料个人资料   登录查看您的站内信件登录查看您的站内信件   登录登录 

FreeBSD中如何编译JDK,以FreeBSD 5.x/JDK 1.4.x为例。

 
发表新文章   回复文章    FreeBSD China -> 应用天地
阅读上一个主题 :: 阅读下一个主题  
作者 留言
xport
老妖


注册时间: 2004-05-27
文章: 1353
来自: N/A

文章发表于: Mon 2006-06-05 12:35:12    发表主题: FreeBSD中如何编译JDK,以FreeBSD 5.x/JDK 1.4.x为例。 引用并回复

首先,推荐大家使用官方发布的二进制安装包(目前只有JDK 1.5版本)!以下内容供大家做参考,因为编译Native的JDK依个人
机器配置不同会花费不同的时间!

FreeBSD 官方JDK下载地址为:FreeBSD Foundation Java Downloads

代码:

现在要在FreeBSD上使用最新的Java技术,需要通过下面的方式进行安装:

(1)  FreeBSD + Linux compatibility enable + Linux Process FileSystem mounted
(2)  Linux Platform - Java(TM) 2 SDK, self-extracting file
(3)  SCSL (Sun Community Source Licensing) Source
       -SCSL Source
       -SCSL Binaries - needed to complete source build
       -Mozilla Binaries
(4)  BSD Java porting patchsets

编译实际上是在FreeBSD的Linux兼容模式下,以Linux JDK Binary为基础,将SCSL Source打上BSD的patch后,在FreeBSD上面编译出native的JDK版本!(哇塞,真是拗口~~~!!!)

所以,以FreeBSD 5.4 Release为例子,我们第一步要做的就是修改 /etc/fstab 这个文件, 新增:

linprocfs     /compat/linux/proc    linprocfs    rw    0        0

重新启动后,可以用kldstat查看是否已经mount上了Linux process FileSystem:

FreeBSD# kldstat
Id Refs Address    Size     Name
 1   10 0xc0400000 5dde24   kernel
 2   14 0xc09de000 56270    acpi.ko
 3    1 0xc1803000 6000     linprocfs.ko
 4    1 0xc180c000 17000    linux.ko

接下来,当然是要升级到最新的ports tree了:

FreeBSD# cd /usr/ports
FreeBSD# cvsup -g -L 2 /root/ports-supfile

然后,进入到JDK的port目录下,我使用的是JDK14:

FreeBSD# cd /usr/ports/java/jdk14                                 
FreeBSD# make

如果是初次编译,应该会看到下面的提示:
 
FreeBSD# make                                                   
===>  jdk-1.4.2p7_1 :                                           
 The source distribution exists on your system, but due to     
 licensing restrictions you still need to download the         
 patchset, bsd-jdk14-patches-7.tar.gz, from                     
 http://www.eyesbeyond.com/freebsddom/java/jdk14.html.         
 Please place the patchset in /usr/ports/distfiles.
 
这说明我们少了一些编译所需要的distfiles,所幸的是系统已经给出了下载的网址,按照上面的提示,一一
将所需要的档案抓下来,并放到这里:/usr/ports/distfiles,我下载的文件列表如下,供大家参考:

    bsd-jdk14-patches-7.tar.gz
    j2sdk-1_4_2-bin-scsl.zip
    j2sdk-1_4_2-mozilla_headers-unix.zip
    j2sdk-1_4_2-src-scsl.zip
    j2sdk-1_4_2_09-linux-i586.bin
    j2sdk-sec-1_4_2-src-scsl.zip

有了这些文件后,就可以开始对JDK进行make了:

FreeBSD# cd /usr/ports/java/jdk14
FreeBSD# make

make过程中,会参照系统环境去网上fetch下面几个package,当然,如果您已经安装了它们就太好了~~~!

    autoconf-000227.tar.bz2
    automake-1.4-p6.tar.gz
    rpm-3.0.6.tar.gz

make完成对上面几个package安装后,就开始返回到JDK的编译过程,下面是编译中:
 
Compiling /usr/ports/java/jdk14/work/hotspot/src/share/vm/oops/cpCacheKlass.cpp
Compiling /usr/ports/java/jdk14/work/hotspot/src/share/vm/oops/cpCacheOop.cpp 
Compiling /usr/ports/java/jdk14/work/hotspot/src/share/vm/utilities/debug.cpp 
Compiling /usr/ports/java/jdk14/work/hotspot/src/share/vm/code/debugInfo.cpp   
Compiling /usr/ports/java/jdk14/work/hotspot/src/share/vm/code/debugInfoRec.cpp
Compiling /usr/ports/java/jdk14/work/hotspot/src/cpu/i486/vm/debug_i486.cpp   
... 时间很长,以下请大家自我想象...

需要提到一点的是,编译完JVM后,因为我选择的是默认的安装方法,所以make还会去讲一些Java基本的
library用javac作make,然后用jar作packing,这样需要的时间更长...请再耐心等待...

编译完成后,系统回到提示符下,可以make install了...好高兴啊~~~

FreeBSD# make install
===>  Installing for jdk-1.4.2p7_1
===>   jdk-1.4.2p7_1 depends on executable: javavm - found
... 跳过 ...     
=> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
urw-fonts.tar.gz                              100% of 1508 kB 8099  Bps 00m00s
... 跳过 ...
===>   Registering installation for urwfonts-1.0
===>   Returning to build of jdk-1.4.2p7_1
... 跳过 ...
===>   Registering installation for jdk-1.4.2p7_1                             
===> SECURITY REPORT:                                                         
      This port has installed the following files which may act as network   
      servers and may therefore pose a remote security risk to the system.   
/usr/local/jdk1.4.2/jre/lib/i386/native_threads/libhpi.so                     
/usr/local/jdk1.4.2/jre/lib/i386/client/libjvm.so                             
/usr/local/jdk1.4.2/jre/lib/i386/libnio.so                                   
/usr/local/jdk1.4.2/jre/lib/i386/libdt_socket.so                             
/usr/local/jdk1.4.2/jre/lib/i386/server/libjvm.so                             
/usr/local/jdk1.4.2/jre/javaws/javawsbin                                     
                                                                             
      If there are vulnerabilities in these programs there may be a security 
      risk to the system. FreeBSD makes no guarantee about the security of   
      ports included in the Ports Collection. Please type 'make deinstall'   
      to deinstall the port if this is a concern.                             
                                                                             
      For more information, and contact details about the security           
      status of this software, see the following webpage:                     
http://www.freebsd.org/java/                                                 
FreeBSD#

接下来就是常规的,make clean, make distclean,删除不想要的distfiles了!
不过不要忘记了给Java设定JAVA_HOME和CLASSPATH的环境变量,最后就可以看到Java的版本信息:

FreeBSD# cd /usr/local/jdk1.4.2/bin
FreeBSD# java -version
java version "1.4.2-p7"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-p7-root_06_oct_2005_21_31)
Java HotSpot(TM) Client VM (build 1.4.2-p7-root_06_oct_2005_21_31, mixed mode)


原文请参考:http://blog.csdn.net/xport/archive/2005/10/07/496726.aspx

_________________
http://blog.csdn.net/xport/


最后进行编辑的是 xport on Wed 2007-10-17 10:34:02, 总计第 3 次编辑
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页 AIM Yahoo Messenger MSN Messenger
joleon
半仙


注册时间: 2006-07-12
文章: 19

文章发表于: Fri 2006-08-18 14:49:17    发表主题: 引用并回复

好文章,写的很详细,谢谢了,但是我安装jdk的时候出问题了,一发帖,帮忙看看先
_________________
学问之美,在于使人一头雾水;诗歌之美,在于煽动男女出轨。
返回页首
阅览会员资料 发送站内信件 MSN Messenger
HOOLOO
老妖


注册时间: 2004-12-31
文章: 1169

文章发表于: Sat 2006-08-19 21:10:13    发表主题: 引用并回复

官方发布难道不是diablo开头的那个吗?
返回页首
阅览会员资料 发送站内信件
xport
老妖


注册时间: 2004-05-27
文章: 1353
来自: N/A

文章发表于: Mon 2006-08-21 12:26:09    发表主题: 引用并回复

HOOLOO 写到:
官方发布难道不是diablo开头的那个吗?


还是建议参考这里的好:http://www.freebsdfoundation.org/downloads/java.shtml

其他的 diablo 有些不靠谱~~~! Cool

_________________
http://blog.csdn.net/xport/


最后进行编辑的是 xport on Mon 2008-06-16 16:08:35, 总计第 1 次编辑
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页 AIM Yahoo Messenger MSN Messenger
bleakwind
老妖


注册时间: 2005-01-07
文章: 1346
来自: The Matrix

文章发表于: Thu 2008-06-12 22:39:18    发表主题: 引用并回复

好像freebsd有原生的了吧?
上次装过一次没问题,不过对一些程序兼容性要看情况,有的程序写的不好运行起来有少许问题...

_________________
听不到你的声音,只有风声在想...
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页 MSN Messenger
xport
老妖


注册时间: 2004-05-27
文章: 1353
来自: N/A

文章发表于: Mon 2008-06-16 16:09:50    发表主题: 引用并回复

没错,是有原生的了!

发这个帖子的时候,还是基于 JDK 1.4 弄的!

另外 Java 宣扬的 100% 的 “Write Once, Run Anywhere !” 的说法是有前提条件的。

_________________
http://blog.csdn.net/xport/
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页 AIM Yahoo Messenger MSN Messenger
从以前的文章开始显示:   
发表新文章   回复文章    FreeBSD China -> 应用天地 论坛时间为 北京时间
1页/共1

 
转跳到:  
不能发布新主题
不能在这个论坛回复主题
不能在这个论坛编辑自己的文章
不能在这个论坛删除自己的文章
不能在这个论坛发表投票


Powered by phpBB 2023cc © 2003 Opensource Steps; © 2003-2009 The FreeBSD Simplified Chinese Project
Powered by phpBB © 2001, 2005 phpBB Group
Protected by Project Honey Pot and phpBB.cc
silvery-trainer
The FreeBSD China Project 网站: 中文计划网站 社区网站
The FreeBSD China Project 版权所有 (C) 1999 - 2003 网页设计版权 著作权和商标