2008年7月7日

          在ubuntu下安裝java環(huán)境: 1、jdk安裝: (1)下載jdk:java_ee_sdk-5_01-linux.bin 下載地址 http://java.sun.com/javase/downloads/index_jdk5.jsp (2)啟動ubuntu操作系統(tǒng) (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復(fù)制到/usr/local目錄下。 (7)cd命令 切換到/usr/local目錄下 (8)運行 chmod a+x java_ee_sdk-5_01-linux.bin 給予相應(yīng)的權(quán)限 (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下面發(fā)現(xiàn)有 /usr/lib/libstdc++.so.6.0.3于是運行 ln -s /usr/lib/libstdc++.so.6.0.3 /usr/lib/libstdc++.so.5 創(chuàng)建一個符合連接,這個錯誤信息沒有了。 (11)設(shè)置Linux的全局環(huán)境變量(需要root權(quán)限),修改/etc/profile,root超級用戶下 具體命令: su root(輸入密碼后,具有超級用戶權(quán)限) vi /etc/profile(編輯profile環(huán)境變量文件) 加入: 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環(huán)境變量。 JBOSS_HOME=/opt/jboss/jboss4 PATH=$PATH:/opt/jboss/jboss4/bin export JBOSS_HOME PATH (4)把工程的三個ggjgWebApp.war、HBSAR.sar、GGJGEJB.jar放到j(luò)boss的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 閱讀(1122) | 評論 (0)編輯 收藏
           
          搞了很久, 終于把DB2 Express-C給裝在了Linux虛 擬機上。 我用的虛擬機是VirtualBox3.0.4, SUN出品, 只有80M左右, 嘿嘿, 用起來很方便,在虛擬機上裝過增強工具以后, 虛擬機的屏幕分辨率就會自動調(diào)整, 自動適應(yīng)。 和VMWare龐大的體積比起來, 小巧了很多哦。 至于功能和性能, 我是沒感覺出有啥區(qū)別來。
              繼續(xù)說咱們的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

            網(wǎng)上說, 可以解壓到同一個目錄里面, 自動整合, 這個我沒有試驗, 今天晚上試試。
          2. 這個時候, 如果執(zhí)行db2setup的話, 會報少一個包. The required library file libaio.so.1 is not found on the system.
            Ubuntu的好處體現(xiàn)出來了,sudo apt-get install libaio1 安裝缺少的包。
            其實我第一次安裝的是libaio, apt-get提示我說不可用, 可以用libaio1替代。
            安裝完依賴包, 就可以用db2setup來安裝了。 因為Ubuntu一般不允許root登陸, 為了方便, 我用我的用戶安裝的。 用root權(quán)限安裝的話, 會安裝到/opt/ibm/db2下面, 用普通用戶的話, 會安裝的用戶目錄。

            嗯, 高手也可以用db2-install命令行模式安裝。 其實期間沒有交互信息的, 哪個都行。

            安裝的過程, 就不細說了, 一路next過來的。
          3. 安裝結(jié)束以后, 得記著, 要運行安裝目錄下的db2profile, 添加環(huán)境變量。. /home/richar/sqllib/db2profile 自己看清楚目錄哦。
          4. 執(zhí)行結(jié)束, 運行db2start命令, 它報給我個錯:
            SQL1220NThedatabasemanagersharedmemorysetcannotbeallocated.

            網(wǎng)上搜了些資料, 說是共享緩存不足, 具體原理我也不清楚了。 用sysctl kernel.shmmax命令查看了共享內(nèi)存。kernel.shmmax=33554432(32MB), 設(shè)置成256M
            echo 268435456 > /proc/sys/kernel/shmmax

            之后再次執(zhí)行db2start, 啟動成功。
              到次, 安裝就結(jié)束了。 語言包的沒寫, 因為安裝更簡單, 直接db2setup就可以了, 根據(jù)提示, 很簡單的。
              后續(xù)的配置, 使用, 下篇文章, 我們再介紹。

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

          本文出自 “立子” 博客,請務(wù)必保留此出處http://leaze.blog.51cto.com/83088/195583

          posted @ 2010-11-20 08:12 hhcto 閱讀(725) | 評論 (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 閱讀(283) | 評論 (0)編輯 收藏
           

          網(wǎng)站開發(fā)時經(jīng)常需要在某個頁面需要實現(xiàn)對大量圖片的瀏覽,如果考慮流量的話,大可以像pconline一樣每個頁面只顯示一張圖片,讓用戶每看一張圖片就需要重新下載一下整個頁面。不過,在web2.0時代,更多人愿意用javascript來實現(xiàn)一個圖片瀏覽器,讓用戶無需等待過長的時間就能看到其他圖片。

          知道了一張圖片的地址,需要把它在一個固定大小的html容器(可以是div等)里邊顯示出來,最重要的當然是需要知道這張即將顯示的圖片的寬和高,然后再結(jié)合容器的寬和高,按照一定的縮放比例使圖片顯示出來。因此,實現(xiàn)圖片預(yù)加載就成為圖片瀏覽器的核心功能了。

          做過圖片翻轉(zhuǎn)效果的朋友其實都知道,要讓圖片輪換的時候不出現(xiàn)等待,最好是先讓圖片下載到本地,讓瀏覽器緩存起來。這時,一般都會用到j(luò)s里邊的Image對象。一般的手段無非這樣:
          function preLoadImg(url) {
            var img = new Image();
            img.src = url;
          }
          通過調(diào)用preLoadImg函數(shù),傳入圖片的url,就能使圖片預(yù)先下載下來了。實際上,這里用到的預(yù)下載功能也和這基本一致。圖片預(yù)下載下來后,通過 img的width和height屬性,就能知道圖片的寬和高了。但是需要考慮到,在做圖片瀏覽器功能時,圖片都是實時顯示的。比如你點了顯示的按鈕,這個時候才會調(diào)用上邊類似的代碼來加載圖片。因此,如果你直接用img.width的時候,圖片還沒有完全下載下來。因此,需要用一些異步的方法,等到圖片下載完畢的時候才會再對img的width和height進行調(diào)用。

          實現(xiàn)這樣的異步方法實際上不難,圖片的下載完畢事件也很簡單,就是簡單的onload事件。因此,我們可以寫出下面的代碼:
          function loadImage(url, callback) {
            var img = new Image();
            img.src = url;

            img.onload = function(){ //圖片下載完畢時異步調(diào)用callback函數(shù)。
              callback.call(img);   // 將callback函數(shù)this指針切換為img。
            };
          }

          好了,再來寫一個測試用例。
          function imgLoaded(){
            alert(this.width);
          }
          <input type="button" value="loadImage" onclick="loadImage('aaa.jpg',imgLoaded)"/>

          在firefox中測試一下,發(fā)現(xiàn)不錯,果然和預(yù)想的效果一樣,在圖片下載后,就會彈出圖片的寬度來。無論點擊多少次或者刷新結(jié)果都一樣。

          不過,做到這一步,先別高興太早——還需要考慮一下瀏覽器的兼容性,于是,趕緊到ie里邊測試一下。沒錯,同樣彈出了圖片的寬度。但是,再點擊load的時候,情況就不一樣了,什么反應(yīng)都沒有了。刷新一下,也同樣如此。

          經(jīng)過對多個瀏覽器版本的測試,發(fā)現(xiàn)ie6、opera都會這樣,而firefox和safari則表現(xiàn)正常。其實,原因也挺簡單的,就是因為瀏覽器的緩存了。當圖片加載過一次以后,如果再有對該圖片的請求時,由于瀏覽器已經(jīng)緩存住這張圖片了,不會再發(fā)起一次新的請求,而是直接從緩存中加載過來。對于 firefox和safari,它們視圖使這兩種加載方式對用戶透明,同樣會引起圖片的onload事件,而ie和opera則忽略了這種同一性,不會引起圖片的onload事件,因此上邊的代碼在它們里邊不能得以實現(xiàn)效果。

          怎么辦呢?最好的情況是Image可以有一個狀態(tài)值表明它是否已經(jīng)載入成功了。從緩存加載的時候,因為不需要等待,這個狀態(tài)值就直接是表明已經(jīng)下載了,而從http請求加載時,因為需要等待下載,這個值顯示為未完成。這樣的話,就可以搞定了。

          經(jīng)過一些分析,終于發(fā)現(xiàn)一個為各個瀏覽器所兼容的Image的屬性——complete。所以,在圖片onload事件之前先對這個值做一下判斷即可。最后,代碼變成如下的樣子:
          function loadImage(url, callback) {
              var img = new Image(); //創(chuàng)建一個Image對象,實現(xiàn)圖片的預(yù)下載
              img.src = url;
            
              if (img.complete) { // 如果圖片已經(jīng)存在于瀏覽器緩存,直接調(diào)用回調(diào)函數(shù)
                  callback.call(img);
                  return; // 直接返回,不用再處理onload事件
              }

              img.onload = function () { //圖片下載完畢時異步調(diào)用callback函數(shù)。
                  callback.call(img);//將回調(diào)函數(shù)的this替換為Image對象
              };
          };
          經(jīng)過這么一番折騰,總算是讓各個瀏覽器都能滿足我們的目標了。雖然代碼很簡單,但是卻把圖片瀏覽器中最核心的問題解決掉了,接下來你所要做的,僅僅是圖片如何呈現(xiàn)的問題了。

          posted @ 2008-07-07 16:32 hhcto 閱讀(4269) | 評論 (4)編輯 收藏
           
          主站蜘蛛池模板: 保德县| 平江县| 澜沧| 县级市| 阜宁县| 满洲里市| 嵊泗县| 北安市| 阜阳市| 广灵县| 嘉黎县| 吉林省| 霞浦县| 民勤县| 贵港市| 辽源市| 安西县| 金寨县| 尼木县| 桦甸市| 光泽县| 罗甸县| 银川市| 白山市| 德令哈市| 普兰店市| 云浮市| 日土县| 南投市| 凉山| 安泽县| 阜新市| 辽宁省| 铁岭市| 徐汇区| 彩票| 东兰县| 北安市| 正安县| 福建省| 乌兰浩特市|