2007年9月12日

在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 阅读(1117) | 评论 (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 阅读(717) | 评论 (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 阅读(276) | 评论 (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 阅读(4256) | 评论 (4)编辑 收藏
 

常用JDBC连接字符串

常用JDBC连接字符串
1.MySQL

代码:
Class.forName(  " org.gjt.mm.mysql.Driver "  );
Connection conn  =  DriverManager.getConnection(  " jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName " , sUsr, sPwd );
2.Microsoft SQLServer

代码:
Class.forName(  " com.microsoft.jdbc.sqlserver.SQLServerDriver "  );
Connection conn  =  DriverManager.getConnection(  " jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master " , sUsr, sPwd );
3.Oracle

代码:
Class.forName(  " oracle.jdbc.driver.OracleDriver "  );
Connection conn  =  DriverManager.getConnection ("jdbc: oracle:thin: @MyDbComputerNameOrIP:1521: ORCL " , sUsr, sPwd );
4.DB2

代码:
Class.forName( " com.ibm.db2.jdbc.net.DB2Driver " );
String url = " jdbc:db2://192.9.200.108:6789/SAMPLE "
Connection conn  =  DriverManager.getConnection( url, sUsr, sPwd );
5.ODBC
代码:
Class.forName(  " sun.jdbc.odbc.JdbcOdbcDriver "  );
Connection conn  =  DriverManager.getConnection("jdbc: odbc: "   +  sDsn, sUsr, sPwd );
6.PostgreSQL

代码:
Class.forName(  " org.postgresql.Driver "  );
Connection conn  =  DriverManager.getConnection(  " jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName " , sUsr, sPwd );
posted @ 2008-06-14 21:13 hhcto 阅读(1140) | 评论 (0)编辑 收藏
 
模式窗口showModalDialog详解 
showModalDialog()、showModelessDialog()方法使用详解 

Javascript有许多内建的方法来产生对话框,如:window.alert(), window.confirm(),window.prompt().等。 然而IE提供更多的方法支持对话框。如: 

  showModalDialog() (IE 4+ 支持) 
  showModelessDialog() (IE 5+ 支持) 


window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。 
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。 

当我们用showModelessDialog()打开窗口时,不必用window.close()去关闭它,当以非模态方式[IE5]打开时, 打开对话框的窗口仍可以进行其他的操作,即对话框不总是最上面的焦点,当打开它的窗口URL改变时,它自动关闭。而模态[IE4]方式的对话框始终有焦点(焦点不可移走,直到它关闭)。模态对话框和打开它的窗口相联系,因此我们打开另外的窗口时,他们的链接关系依然保存,并且隐藏在活动窗口的下面。 

使用方法如下: 
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures]) 
vReturnValue = window.showModelessDialog(sURL [, vArguments] [, sFeatures]) 
参数说明: 
sURL 
必选参数,类型:字符串。用来指定对话框要显示的文档的URL。 
vArguments 
可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。 
sFeatures 
可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。 
dialogHeight 对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。 
  dialogWidth: 对话框宽度。 
  dialogLeft: 距离桌面左的距离。 
  dialogTop: 离桌面上的距离。 
  center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。 
  help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。 
  resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。 
  status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no[Modal]。 
scroll:{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。 

还有几个属性是用在HTA中的,在一般的网页中一般不使用。 
dialogHide:{ yes | no | 1 | 0 | on | off }:在打印或者打印预览时对话框是否隐藏。默认为no。 
edge:{ sunken | raised }:指明对话框的边框样式。默认为raised。 
unadorned:{ yes | no | 1 | 0 | on | off }:默认为no。 

传入参数: 
要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如: 

test1.htm 
==================== 
<script> 
var mxh1 = new Array("mxh","net_lover","孟子E章") 
var mxh2 = window.open("about:blank","window_mxh") 
// 向对话框传递数组 
window.showModalDialog("test2.htm",mxh1) 
// 向对话框传递window对象 
window.showModalDialog("test3.htm",mxh2) 
</script> 

test2.htm 
==================== 
<script> 
var a = window.dialogArguments 
alert("您传递的参数为:" + a) 
</script> 

test3.htm 
==================== 
<script> 
var a = window.dialogArguments 
alert("您传递的参数为window对象,名称:" + a.name) 
</script> 

可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象。例如: 

test4.htm 
=================== 
<script> 
var a = window.showModalDialog("test5.htm") 
for(i=0;i<a.length;i++) alert(a[i]) 
</script> 

test5.htm 
=================== 
<script> 
function sendTo() 

var a=new Array("a","b") 
window.returnValue = a 
window.close() 

</script> 
<body> 
<form> 
<input value="返回" type=button onclick="sendTo()"> 
</form> 

常见问题: 
1,如何在模态对话框中进行提交而不新开窗口? 
如果你 的 浏览器是IE5.5+,可以在对话框中使用带name属性的iframe,提交时可以制定target为该iframe的name。对于IE4+,你可以用高度为0的frame来作:例子, 

test6.htm 
=================== 
<script> 
window.showModalDialog("test7.htm") 
</script> 

test7.htm 
=================== 
if(window.location.search) alert(window.location.search) 
<frameset rows="0,*"> 
<frame src="about:blank"> 
<frame src="test8.htm"> 
</frameset> 

test8.htm 
=================== 
<form target="_self" method="get"> 
<input name=txt value="test"> 
<input type=submit> 
</form> 
<script> 
if(window.location.search) alert(window.location.search) 
</script> 
2,可以通过http://servername/virtualdirname/test.htm?name=mxh方式直接向对话框传递参数吗? 
答案是不能。但在frame里是可以的。
posted @ 2007-09-12 11:19 hhcto 阅读(830) | 评论 (0)编辑 收藏