2008年7月7日

在ubuntu下安装java环境: 1、jdk安装: (1)下载jdk:java_ee_sdk-5_01-linux.bin 下载地址 http://java.sun.com/javase/downloads/index_jdk5.jsp (2)启动ubuntu操作系统 (3)用winscp把java_ee_sdk-5_01-linux.bin拷贝到 ubuntu 的/home/wonderful(wonderful是我的用户目录) (4)打开Ubuntu终端,运行命令,切换到超级用户。 (5)cd命令 切换到/home/wonderful 目录下 (6)运行 cp java_ee_sdk-5_01-linux.bin /usr/local ,将jdk复制到/usr/local目录下。 (7)cd命令 切换到/usr/local目录下 (8)运行 chmod a+x java_ee_sdk-5_01-linux.bin 给予相应的权限 (9)./java_ee_sdk-5_01-linux.bin,程序运行(程序默认装在opt/SDK/jdk下) (10)如果报错:error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory。 解决方法:在/usr/lib下面发现有 /usr/lib/libstdc++.so.6.0.3于是运行 ln -s /usr/lib/libstdc++.so.6.0.3 /usr/lib/libstdc++.so.5 创建一个符合连接,这个错误信息没有了。 (11)设置Linux的全局环境变量(需要root权限),修改/etc/profile,root超级用户下 具体命令: su root(输入密码后,具有超级用户权限) vi /etc/profile(编辑profile环境变量文件) 加入: JAVA_HOME=/opt/SDK/jdk PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export PATH JAVA_HOME CLASSPATH 在insert不能修改的情况下:按“shift+:”进入命令输入格式,输入命令w(保存) ctrl+z回到命令窗口 (12)运行source /etc/profile,激活java (13)java -version查看java版本,看是否配置合适。 Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_09-b03) Java HotSpot(TM) Client VM (build 1.5.0_09-b03, mixed mode) 2、jboss安装: (1)jboss在windows和ubuntu平台兼容。直接可以把windows下运行正常的jboss放到ubuntu下。 (2)把jboss(文件夹名为jboss4)放到,ubuntu的 /opt/jboss目录下,把sys_config_jboss.xml放到 ,ubuntu的 /opt/jboss/sysHome目录下。(sysHome为新建目录) (3)修改 /etc/profile 文件。在文件最后增加jboss环境变量。 JBOSS_HOME=/opt/jboss/jboss4 PATH=$PATH:/opt/jboss/jboss4/bin export JBOSS_HOME PATH (4)把工程的三个ggjgWebApp.war、HBSAR.sar、GGJGEJB.jar放到jboss的deploy下。其中 ggjgWebApp.war和GGJGEJB.jar的sys_init.properties中的sysHome属性指向/opt/jboss /sysHome。 (5)启动jboss,在jboss4的bin目录下运行:./run.sh
posted @ 2010-11-20 08:28 hhcto 阅读(1109) | 评论 (0)编辑 收藏
 
搞了很久, 终于把DB2 Express-C给装在了Linux虚 拟机上。 我用的虚拟机是VirtualBox3.0.4, SUN出品, 只有80M左右, 嘿嘿, 用起来很方便,在虚拟机上装过增强工具以后, 虚拟机的屏幕分辨率就会自动调整, 自动适应。 和VMWare庞大的体积比起来, 小巧了很多哦。 至于功能和性能, 我是没感觉出有啥区别来。
    继续说咱们的DB2。准备工作就去去IBM下载安装包和语言包。db2exc_970_LNX_x86.tar.gzdb2exc_nlpack_970_LNX_x86.tar.gz。 
    下面开始安装:
  1. tar -xvzf db2exc_970_LNX_x86.tar.gz
    tar -xvzf db2exc_nlpack_970_LNX_x86.tar.gz

    网上说, 可以解压到同一个目录里面, 自动整合, 这个我没有试验, 今天晚上试试。
  2. 这个时候, 如果执行db2setup的话, 会报少一个包. The required library file libaio.so.1 is not found on the system.
    Ubuntu的好处体现出来了,sudo apt-get install libaio1 安装缺少的包。
    其实我第一次安装的是libaio, apt-get提示我说不可用, 可以用libaio1替代。
    安装完依赖包, 就可以用db2setup来安装了。 因为Ubuntu一般不允许root登陆, 为了方便, 我用我的用户安装的。 用root权限安装的话, 会安装到/opt/ibm/db2下面, 用普通用户的话, 会安装的用户目录。

    嗯, 高手也可以用db2-install命令行模式安装。 其实期间没有交互信息的, 哪个都行。

    安装的过程, 就不细说了, 一路next过来的。
  3. 安装结束以后, 得记着, 要运行安装目录下的db2profile, 添加环境变量。. /home/richar/sqllib/db2profile 自己看清楚目录哦。
  4. 执行结束, 运行db2start命令, 它报给我个错:
    SQL1220NThedatabasemanagersharedmemorysetcannotbeallocated.

    网上搜了些资料, 说是共享缓存不足, 具体原理我也不清楚了。 用sysctl kernel.shmmax命令查看了共享内存。kernel.shmmax=33554432(32MB), 设置成256M
    echo 268435456 > /proc/sys/kernel/shmmax

    之后再次执行db2start, 启动成功。
    到次, 安装就结束了。 语言包的没写, 因为安装更简单, 直接db2setup就可以了, 根据提示, 很简单的。
    后续的配置, 使用, 下篇文章, 我们再介绍。

tar -xvzf db2exc_970_LNX_x86.tar.gz tar -xvzf db2exc_nlpack_970_LNX_x86.tar.gz

本文出自 “立子” 博客,请务必保留此出处http://leaze.blog.51cto.com/83088/195583

posted @ 2010-11-20 08:12 hhcto 阅读(711) | 评论 (0)编辑 收藏
 
解决qq崩溃问题,首先在终端输入:sudo gedit /usr/bin/qq 将弹出来的代码修改为以下代码: #!/bin/sh export GDK_NATIVE_WINDOWS=true cd /usr/share/tencent/qq/ ./qq 这样QQ就不会 崩溃了
posted @ 2010-11-20 08:02 hhcto 阅读(270) | 评论 (0)编辑 收藏
 

网站开发时经常需要在某个页面需要实现对大量图片的浏览,如果考虑流量的话,大可以像pconline一样每个页面只显示一张图片,让用户每看一张图片就需要重新下载一下整个页面。不过,在web2.0时代,更多人愿意用javascript来实现一个图片浏览器,让用户无需等待过长的时间就能看到其他图片。

知道了一张图片的地址,需要把它在一个固定大小的html容器(可以是div等)里边显示出来,最重要的当然是需要知道这张即将显示的图片的宽和高,然后再结合容器的宽和高,按照一定的缩放比例使图片显示出来。因此,实现图片预加载就成为图片浏览器的核心功能了。

做过图片翻转效果的朋友其实都知道,要让图片轮换的时候不出现等待,最好是先让图片下载到本地,让浏览器缓存起来。这时,一般都会用到js里边的Image对象。一般的手段无非这样:
function preLoadImg(url) {
  var img = new Image();
  img.src = url;
}
通过调用preLoadImg函数,传入图片的url,就能使图片预先下载下来了。实际上,这里用到的预下载功能也和这基本一致。图片预下载下来后,通过 img的width和height属性,就能知道图片的宽和高了。但是需要考虑到,在做图片浏览器功能时,图片都是实时显示的。比如你点了显示的按钮,这个时候才会调用上边类似的代码来加载图片。因此,如果你直接用img.width的时候,图片还没有完全下载下来。因此,需要用一些异步的方法,等到图片下载完毕的时候才会再对img的width和height进行调用。

实现这样的异步方法实际上不难,图片的下载完毕事件也很简单,就是简单的onload事件。因此,我们可以写出下面的代码:
function loadImage(url, callback) {
  var img = new Image();
  img.src = url;

  img.onload = function(){ //图片下载完毕时异步调用callback函数。
    callback.call(img);   // 将callback函数this指针切换为img。
  };
}

好了,再来写一个测试用例。
function imgLoaded(){
  alert(this.width);
}
<input type="button" value="loadImage" onclick="loadImage('aaa.jpg',imgLoaded)"/>

在firefox中测试一下,发现不错,果然和预想的效果一样,在图片下载后,就会弹出图片的宽度来。无论点击多少次或者刷新结果都一样。

不过,做到这一步,先别高兴太早——还需要考虑一下浏览器的兼容性,于是,赶紧到ie里边测试一下。没错,同样弹出了图片的宽度。但是,再点击load的时候,情况就不一样了,什么反应都没有了。刷新一下,也同样如此。

经过对多个浏览器版本的测试,发现ie6、opera都会这样,而firefox和safari则表现正常。其实,原因也挺简单的,就是因为浏览器的缓存了。当图片加载过一次以后,如果再有对该图片的请求时,由于浏览器已经缓存住这张图片了,不会再发起一次新的请求,而是直接从缓存中加载过来。对于 firefox和safari,它们视图使这两种加载方式对用户透明,同样会引起图片的onload事件,而ie和opera则忽略了这种同一性,不会引起图片的onload事件,因此上边的代码在它们里边不能得以实现效果。

怎么办呢?最好的情况是Image可以有一个状态值表明它是否已经载入成功了。从缓存加载的时候,因为不需要等待,这个状态值就直接是表明已经下载了,而从http请求加载时,因为需要等待下载,这个值显示为未完成。这样的话,就可以搞定了。

经过一些分析,终于发现一个为各个浏览器所兼容的Image的属性——complete。所以,在图片onload事件之前先对这个值做一下判断即可。最后,代码变成如下的样子:
function loadImage(url, callback) {
    var img = new Image(); //创建一个Image对象,实现图片的预下载
    img.src = url;
  
    if (img.complete) { // 如果图片已经存在于浏览器缓存,直接调用回调函数
        callback.call(img);
        return; // 直接返回,不用再处理onload事件
    }

    img.onload = function () { //图片下载完毕时异步调用callback函数。
        callback.call(img);//将回调函数的this替换为Image对象
    };
};
经过这么一番折腾,总算是让各个浏览器都能满足我们的目标了。虽然代码很简单,但是却把图片浏览器中最核心的问题解决掉了,接下来你所要做的,仅仅是图片如何呈现的问题了。

posted @ 2008-07-07 16:32 hhcto 阅读(4253) | 评论 (4)编辑 收藏