Sun-JDK,Tomcat,Tomcat-native On FreeBSD,
首先安装diablo-jdk
参加freebsdchina老妖的文章
FreeBSD 最小化安装 +diablo-jdk +Apache 与 Tomcat 整合 。
装完之后更改jdk为sun官方jdk
#cd /usr/ports/java/jdk15
#make install
然后按照系统提示去下载一系列的文件
jdk-1_5_0_13-fcs-bin-b05-jrl-25_sep_2007.jar
jdk-1_5_0_13-fcs-src-b05-jrl-25_sep_2007.jar
tzupdater-1_2_2-2007g.zip
bsd-jdk15-patches-7.tar.bz2
jce_policy-1_5_0.zip
然后copy到/usr/ports/distfiles,然后继续按照屏幕提示安装
当你看到一个选择界面的时候你可以把debug选项去掉,如果你是当作服务器的话,其他根据你自己的需求,如果这儿选择了IPV6的,那么在下面需要你增加一行配置,我就是因为这个而折腾了一下午的。
当jdk15装好后,你就可以pkg_delete 掉你的diablo-jdk了,具体你要查看
pkg_info|grep diablo-jdk了。
然后安装tomcat-native
# cd /usr/local/apache-tomcat6.0/bin
# tar xvf tomcat-native.tar.gz
# cd ./tomcat-native-1.1.10-src/jni/native/
# setenv JAVA_HOME /usr/local/diablo-jdk1.5.0/
# ./configure --with-apr=/usr/local
# make
# make install
在这个地方如果安装的时候提示你找不到jdk,那么你就手工在configure文件中手工加上JAVA_HOME的设定
安装好了之后会有个提示:
----------------------------------------------------------------------
Libraries have been installed in:
/usr/local/apr/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
安装后多出一个目录 /usr/local/apr
然后安装上面的提示操作一下就好了,我这里用的 link 的方式:
# ln -s /usr/local/apr/lib/libtcnative-1.so /usr/local/diablo-jdk1.5.0/jre/lib/i386/libtcnative-1.so
然后如果你前面设置了ipv6的,现在请在/usr/local/etc/rc.d/tomcat6文件中
java_command="*********",星号部分代表原文件配置代码,
在星号部分增加
-Djava.net.preferIPv4Stack=true
如果这儿没有增加,那么你将遇到
Oct 30, 2007 11:36:41 PM org.apache.catalina.core.StandardServer await
SEVERE: StandardServer.await: create[8005]:
java.net.BindException: Can't assign requested address
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359)
at java.net.ServerSocket.bind(ServerSocket.java:319)
at java.net.ServerSocket.<init>(ServerSocket.java:185)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:363)
at org.apache.catalina.startup.Catalina.await(Catalina.java:616)
at org.apache.catalina.startup.Catalina.start(Catalina.java:576)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
这样的错误信息。