登录 |
  • 注册
  • HSQLDB

    2009年04月29日16:00:05 星期三 | 作者:marcian

    HSQLDB是一个纯Java的轻量级的数据库,官方网址:http://hsqldb.org

    HSQLDB的基本使用:

    1:在官网下载并且解压缩。

    2:修改bin目录的runUtil.bat,改为:java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 mydb -dbname.0 mydb。

    3:运行runUtil.bat来创建mydb数据库,默认情况下会在data目录下创建和mydb相关的几个,mydb.properties,mydb.log。

    4:java -cp ../lib/hsqldb.jar org.hsqldb.util.DatabaseManager,可以使用GUI工具来创建管理表。

    5:hsqldb中文手册下载: hsqldb中文手册

    其他的看手册吧。

    Oracle收购Sun

    2009年04月20日23:01:20 星期一 | 作者:marcian

    Java的老祖宗被人收购了,希望我喜欢的Java不会受到影响,更希望MySQL不要受到影响。

    非常喜欢Java的优雅,只是现在的Java有点臃肿。

    Roller全接触之源码构建

    2009年04月18日22:57:09 星期六 | 作者:marcian

    构建Roller源码之前须保证JDK5.0和Ant已经安装并配置完毕。

    出于测试的需要,Tomcat和MySql也应该安装完毕,并且MySQL Driver以及Roller的数据库和用户名都已设置完毕。

    另外还要有个IDE工具,我的是Eclipse,源码构建离不了IDE。

    1:从Apache.org下载Roller源码,可以从SVN Checkout 也可以直接Download源码,目前的版本为4.0。

    2: 将下载的Roller解压缩,将mail.jar和activation.jar拷贝到tools/lib下。

    3:进入apps/weblogger,编辑properties.xmlf,添加如下代码(粗体),将mail.jar和activation.jar放入classpath。

    <fileset id=”base.jars” dir=”${ro.tools}/lib”>
    <include name=”commons-id-0.1-SNAPSHOT.jar”/>
    <include name=”commons-collections-3.2.jar” />
    <include name=”commons-codec-1.3.jar” />
    <include name=”commons-digester-1.6.jar” />
    <include name=”commons-httpclient-2.0.2.jar” />
    <include name=”commons-logging-1.0.4.jar” />
    <include name=”commons-lang-2.1.jar” />
    <include name=”concurrent-1.3.2.jar”/>
    <include name=”jaxen-full.jar” />
    <include name=”saxpath.jar” />
    <include name=”jdom.jar”/>
    <include name=”lucene-1.4.3.jar”/>
    <include name=”log4j-1.2.11.jar”/>
    <include name=”rome-0.9.jar”/>
    <include name=”rome-fetcher-0.9.jar”/>
    <include name=”velocity-1.5.jar”/>
    <include name=”guice-1.0.jar”/>
    <include name=”activation.jar”/>
    <include name=”javamail.jar”/>

    </fileset>

    4:编辑build.xml,将SVN(粗体)部分注释掉。

    <!– Get the SVN last changed rev value w/o using the overly flakey
    svnant task. This will fail if svn is not in your PATH but the only
    negative impact will be that the rev number that appears in your
    log will be “${svn.LastChangedRev}” instead of the correct value.
      <delete file=”${ro.build}/svn.properties” />
    <exec executable=”svn” output=”${ro.build}/svn.properties” failifexecutionfails=”false”>
    <arg value=”info” />
    <arg value=”${root}” />
    </exec>
    <replace dir=”${ro.build}”>
    <include name=”svn.properties” />
    <replacetoken> </replacetoken>
    <replacevalue></replacevalue>
    </replace>
    <property prefix=”svn” file=”${ro.build}/svn.properties”/>

    <echo file=”${build.compile.business}/roller-version.properties”>
    ro.version=${ro.version}
    ro.revision=${svn.LastChangedRev}
    ro.buildTime=${ro.buildTime}
    ro.buildUser=${user.name}
    </echo>
    –>

    5:在web/WEB-INF/classes/下新建一个roller-custom.properties文件,文件内容如下,这个文件用来告诉Roller数据库以及mail server的连接参数。

    installation.type=auto
    database.configurationType=jdbc
    database.jdbc.driverClass=com.mysql.jdbc.Driver
    database.jdbc.connectionURL=jdbc:mysql://localhost:3306/roller_db
    database.jdbc.username=your name
    database.jdbc.password=your password
    mail.configurationType=properties
    mail.hostname=your SMTP server
    mail.username=your mail user name
    mail.password=your mail password

    6:ant dist,没有意外,应该可以在dist/webapp下生成一个war包, 可以将此war包发布到tomcat的webapp下进行部署。

    7:启动Tomcat,Listener error,部署失败,看log是发生了NullPointerException,没关系, 接下来我们将在Eclipse中对代码进行调试。到这里为止,可以基于源码Build一个Roller的部署文件。

    8:在Eclipse中新建一个Java Project,类型为Java project from existing Ant buildfile,选择刚刚编辑过的build.xml文件,项目建立后,配置一下build path,将缺的包补上。

    9:编辑org.apache.roller.weblogger.business.WebloggerImpl,修改下面这段代码,添加一个捕捉NullPointerException的块。

    Properties props = new Properties();
       try {
    
    
             props.load(getClass().getResourceAsStream(”/roller-version.properties”));
    
    
           } catch (IOException e) {
    
    
         log.error(”roller-version.properties not found”, e);
    
    
    }catch(NullPointerException e2){// new code
    
    
     log.error(”roller-version.properties not found”, e2);
    
    
    }

    10:编辑org.apache.roller.weblogger.business.startup.DataBaseInstaller文件,修改如下代码:

    try {
                props.load(getClass().getResourceAsStream(”/roller-version.properties”));
    
    
            } catch (IOException e) {
    
    
                log.error(”roller-version.properties not found”, e);
    
    
            }catch(NullPointerException e2){//new code
    
    
    log.error(”roller-version.properties not found”, e2);
    
    
    }

    11:回到Roller解压目录/apps/webblogger下,ant clean,删除已构建的文件,ant dist,重新构建,重新部署,再启动Tomcat,一切OK。

    12:至此,可以在Eclipse中对Roller进行二次开发并进行构建和部署,不足的是不够直观,每次构建很耗时,在去掉build.xml中的打包指令后,速度提高了一些,曾想把源文件按照Eclipse web project的目录进行组织,不过始终担心在这个过程当中遗失什么东西而无法发觉,最终决定笨些没关系,稳妥是第一位的。

    Roller全接触之开篇

    2009年04月15日23:07:54 星期三 | 作者:marcian

    要基于Apache Roller搭建一个独立的多用户博客站点,这将是我第一次仔细的研读著名开源项目的源代码,以前也想读但是水平不够,现在终于可以一偿夙愿了。

    希望通过这次阅读和二次开发,不但能做出一个好的多用户博客站,还能进一步提高自己的Java水准,捎带把英语水平也提高一下。

    这会是一个系列的日志,今天开篇。

    Linux下ImageMagick和JMagick的安装

    2009年04月15日11:53:23 星期三 | 作者:marcian

    用Java自带的库处理图片很不理想,尤其是缩略图,那叫一个恶心。Imagick和Jmagick是比较好的解决方案。Linux下的安装步骤如下:

    1:安装ImageMagick之前确保已安装jpeg、png、freetype的库,我的所有安装都是源码编译安装,本安装步骤也是基于此。

    2:下载并解压缩ImageMagick 的tar包,我的是6.2.6。

    3:./configure CPPFLAGS=”-I/usr/local/jpeg6b/include  -I/usr/local/freetype/include -I/usr/local/freetype/include/freetype2 -I/usr/local/libpng1.2.12/include”  LDFLAGS=”-L/usr/local/freetype/lib -L/usr/local/jpeg6b/lib -L-I/usr/local/libpng1.2.12/lib” –prefix=/usr/local/ImageMagick-6.2.6

    注意CPPFLAGS和LDFLAGS这两个参数是必须的,否则无法成功安装。

    4:make

    5:make install

    OK,ImageMagick安装完毕,去/usr/local/ImageMagick-6.2.6/bin下执行conver命令来检查安装情况,接下来是JMagick,确保JDK已经安装。

    1:下载并解压缩JMagick的tar包, 我的是6.2.6,注意JMagick和ImageMagick的版本对应关系。

    2:./configure  –with-magick-home=/usr/local/ImageMagick-6.2.6 –prefix=/usr/local/JMagick-6.2.6

    3:make all

    4:make install

    5:make test

    make test用来检查JMagick是否安装成功, 没有问题,将/usr/local/JMagick-6.2.6/lib/libJMagick.so拷贝至JDK安装目录的jre/lib/i386下,将Jmagick.jar拷贝web应用的WEB-INF/lib下。

    OK,现在可以使用JMagick来处理图像了,效果非常的好。还要注意内存的使用,当然,我得内存够大,所以,暂时没有这个问题。

    恐怖的QQ

    2009年04月10日21:25:59 星期五 | 作者:marcian

    以前很少用QQ,最早的时候是06年申请的一个号码,当时的昵称是一笑而过。那个号码现在已经不知所终,记都记不起来了。最近又开始用QQ,因为工作需要。在这次申请QQ号之前,我对QQ的普及程度并没有直观的感受,一度也认为QQ就是个聊天的工具,非常简单的例子就是一个人的名片上也许会印上MSN,但是决不会印上QQ号。然而这段时间发现QQ的普及和渗透程度恐怖的吓人。无论是从公司的老板还是在校的学生,几乎都有一个QQ号,而且QQ也不再局限于聊天,许多的商务活动正在通过QQ来进行。我感觉QQ的普及率甚至要高于邮件,仅次于手机。

    最近有新闻说QQ空间是世界上最大的社区,我深以为然,腾讯只要用心做Qzone,无论是FaceBook或者MySpace皆不是对手,无他,基数在那儿摆着呢。

    国内也有其他的IM软件,象百度Hi,淘宝旺旺,MSN等等,但是当使用QQ成为一种习惯的时候,又有那款IM软件能和QQ抗衡呢?

    恐怖的QQ。

    铭记抓虾

    2009年04月07日14:13:42 星期二 | 作者:marcian

    种种消息表明抓虾似乎真的要结束了,没有人想成为先烈,但总有人会为了探索而牺牲。

    铭记抓虾。

    XUI初体验

    2009年04月07日00:22:33 星期二 | 作者:marcian

    对于Java的桌面应用我一直都比较排斥,一方面觉得将来都是B/S的天下,C/S没什么意义,另一方面习惯了WEB的开发思维,对于桌面的开发方式始终觉得格格不入。不过在接触过XUI之后,感觉桌面开发也是件蛮有乐趣的事情。

    XUI是纯Java+XML的桌面开发方式,并且基于MVC模型和XML配置方式, 很多地方都有WEB开发的影子,感觉很舒服,我很喜欢。

    两天的假期全部扔到了XUI上边,收获颇丰,现在我可以介入到桌面开发领域了。

    遗憾的是XUI目前没有针对Eclipse的可视化插件,只能在NetBeans下开发,而我用NetBeans非常的不顺手,比较影响开发效率。期待Eclipse版的XUI可视化插件。