<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>spiritfrog</title>
    <description></description>
    <link>http://spiritfrog.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>试用了下safari3.1 for windows</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/211857" style="color:red;">http://spiritfrog.javaeye.com/blog/211857</a>&nbsp;
          发表时间: 2008年07月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我倒也不是苹果迷，不过也对苹果的产品保持着一些关注，一直以来赞叹于apple系统的漂亮，据说是最适合设计人员的操作系统，但因为其机器昂贵价格也就没买过apple的电脑。然而随着时代的进步， 苹果终于也开始走向了x86， 苹果有了pc机，而苹果系统更是能够装到pc机上，虽然之前也有听说过破解，现在终归不需要那么费神了。<br />随着ms offcie移植到苹果系统，慢慢的也就有苹果的软件流向windows，于是就有了有了苹果的浏览器safari在windows登场。<br />按照了个最新的safari3.1到windowsxp上， 打开的第一感觉就是慢。。。以前觉得firefox打开慢，但也不至于这么慢，呵呵。当然，打开之后还是感觉界面相当清爽的，苹果的味道也很浓，蓝色的滚动条，灰色的菜单。浏览一下页面，发现字体有些模糊，试着更改字体，结果却没有效果，外观里面调整字体平滑，默认的就是最适合lcd显示器的了。google了一下如何更改safari的字体， 发现居然跟opera一样，都要自定义css来设定，更换成微软雅黑字体，这下舒服多了。也看到有人推荐修改safari的字体渲染引擎为windows的GDI，开启字体清晰后就可以得到windows的cleartype的效果，不过我倒觉得没有必要，safari还是保持自己的一些特色比较好。<br />所有的input都带一个很好看的蓝框，也算是safari的一个特点；查找高亮显示效果很炫，可惜我的t43本本上显得有些负担不起。RSS的支持不错，地址栏后面会自动显示该站点是否提供rss，直接点击就能到rss阅读页面。我找了很久都没找到怎么设置在tab中打开新页面， 必须要同时按住ctrl再点链接才行，偏好设置的标签设定中，调整了几种方式，都不能实现直接在tab打开链接。另外，safari可设置的地方很少， 也许是为的用户使用简单，但对于有需要的用户就显得限制太多。<br />不得不说safari的内存和cpu占用都偏高， 内存倒是好说，反正很多， 但是cpu占用一高就很卡，打开新浪网，开3-4个页面就会停止响应，也许是我的机器档次比较低罢。虽然说safari的javascript和css测试成绩很好，都是no.1，但在使用其他浏览器时并察觉不到这些速度差别，何况safari的页面加载并不快。<br />我的感觉， safari除了几个特效， 倒也并没有其他亮点。功能上比起firefox要差， 浏览速度也没有预期的那么快，加上还不能完美支持tab打开页面，我是不太可能继续用它了，除非将来有更好表现。相信很长时间内我还是会继续使用firefox3。<br />所以即使是苹果出品，也不能太迷信于其大名，还是要从客观角度出发，从切身的需要来看，到底这样东西是否于我是合适的、有必要的。
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/211857#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 05 Jul 2008 14:10:54 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/211857</link>
        <guid>http://spiritfrog.javaeye.com/blog/211857</guid>
      </item>
      <item>
        <title>类似hsqldb的好东西：h2 database</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/211337" style="color:red;">http://spiritfrog.javaeye.com/blog/211337</a>&nbsp;
          发表时间: 2008年07月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          不记得是哪个在坛子里推荐过h2 database， 当时的印象就是Embedded 模式下性能很好，不过我用hsqldb之类完全是为了测试和方便，对速度倒是没什么要求，就没太留意。<br /><br />今天去h2 database的首页， 把Tutorial 和 Features看了看， 发现h2还真的好用， 功能很强大。<br /><br />除了跟hsqldb一样， 有server，Embedded ，in-memory模式之外， 它还有一个很不错的web端的console，启动也很简单只需要运行/bin/h2.bat。<br /><br />Server模式，更是可以在程序中启动：<br /><br /><pre name="code" class="java">import org.h2.tools.Server;
...
// start the TCP Server
Server server = Server.createTcpServer(args).start();
...
// stop the TCP Server
server.stop();</pre><br /><br />对于hibernate也是支持的，不过我看到hibernate3.2中并没有对应h2的dialect，还好h2的源代码中提供了：<br /><br /><div class="quote_title">引用</div><div class="quote_div"><br />For versions where the dialect is missing, you need to copy the file into the folder src\org\hibernate\dialect (Hibernate 3.1), rename it to H2Dialect.java and re-compile hibernate.<br /></div><br /><br />我将之前的一个应用的Embedded hsqldb更换成h2, 相当简单，只更改了如下配置：<br /><br />hibernate.connection.url=jdbc:h2:file:test<br /><br />hibernate.connection.driver_class=org.h2.Driver<br /><br />hibernate.dialect=h2.dialect.H2Dialect #这个是我另外编译到自己的package的<br /><br />再将hibernate的自动建表打开：hibernate.hbm2ddl.auto=create<br /><br />ok，很吸引人的吧。<br /><br /><br /><br />再看看h2的新特性：<br /><br /><div class="quote_title">引用</div><div class="quote_div"><br /><br /> Comparison to Other Database Engines<br />Feature 	 H2 	 Derby 	 HSQLDB 	 MySQL 	 PostgreSQL<br />Pure Java 	Yes 	Yes 	Yes 	No 	No<br />Embedded Mode (Java) 	Yes 	Yes 	Yes 	No 	No<br />Performance (Embedded) 	Fast 	Slow 	Fast 	N/A 	N/A<br />In-Memory Mode 	Yes 	No 	Yes 	No 	No<br />Transaction Isolation 	Yes 	Yes 	No 	Yes 	Yes<br />Cost Based Optimizer 	Yes 	Yes 	No 	Yes 	Yes<br />Clustering 	Yes 	No 	No 	Yes 	Yes<br />Encrypted Database 	Yes 	Yes 	No 	No 	No<br />Linked Tables 	Yes 	No 	Partially *1 	Partially *2 	No<br />ODBC Driver 	Yes 	Yes? 	No 	Yes 	Yes<br />Fulltext Search 	Yes 	No 	No 	Yes 	Yes<br />User-Defined Datatypes 	Yes 	No 	No 	Yes 	Yes<br />Files per Database 	Few 	Many 	Few 	Many 	Many<br />Table Level Locking 	Yes 	Yes 	No 	Yes 	Yes<br />Row Level Locking 	No 	Yes 	No 	Yes 	Yes<br />Multi Version Concurrency 	Yes 	No 	No 	No 	Yes<br />Role Based Security 	Yes 	Yes *3 	Yes 	Yes 	Yes<br />Updatable Result Sets 	Yes 	Yes 	No 	Yes 	Yes<br />Sequences 	Yes 	No 	Yes 	No 	Yes<br />Limit and Offset 	Yes 	No 	Yes 	Yes 	Yes<br />Temporary Tables 	Yes 	Yes *4 	Yes 	Yes 	Yes<br />Computed Columns 	Yes 	No 	No 	No 	Yes *6<br />Case Insensitive Columns 	Yes 	No 	Yes 	Yes 	Yes *6<br />Custom Aggregate Functions 	Yes 	No 	No 	Yes 	Yes<br />Footprint (jar/dll size) 	~1 MB *5 	~2 MB 	~600 KB 	~4 MB 	~6 MB <br /></div><br />可以看出，h2支持集群、事务隔离、全文搜索、Sequence，这些hsqldb都不具备
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/211337#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 04 Jul 2008 09:29:17 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/211337</link>
        <guid>http://spiritfrog.javaeye.com/blog/211337</guid>
      </item>
      <item>
        <title>hsqldb轻松用</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/210118" style="color:red;">http://spiritfrog.javaeye.com/blog/210118</a>&nbsp;
          发表时间: 2008年07月01日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          很早就在用hsqldb，也看到过javaeye关于hsqldb的介绍：<br /><a href="http://www.javaeye.com/topic/78887" target="_blank">http://www.javaeye.com/topic/78887</a><br />使用hsqldb的原因很简单，因为它很简单、轻巧， 又是纯java的，轻松启动，又可以随处带着跑。看到很多人做一个java简单的示例程序，还要用sqlserver、oracle，就觉得纳闷，还是赶紧来尝试hsqldb把。<br />另外，官方的文档也有中文翻译的，看了前两章，感觉还不错：<br /><a href="http://hsqldb.bokee.com/2756669.html" target="_blank">http://hsqldb.bokee.com/2756669.html</a><br /><br />以前自己做的一个例子程序，用的是hsqldb的server模式， 后来又觉得每次都要先start server有些麻烦， 就想更换为in-process模式，这样就能直接在程序启动，不需要另外去start server。<br />本来有些担心原先的数据库在更换in-process之后不能使用， 抱着试试看的心态，将url改为：<br />jdbc:hsqldb:file:testdb/test；<br />jdbc:hsqldb:file: 后面接着是db文件的路径，可以使用相对路径。上面的testdb/test就是应用程序根路径下的testdb/test<br />改了url之后，重启应用程序，发现已经正常启用了in-process模式， 而且数据库的数据都正常，证明数据库从server到in-process是能够轻松共享的。<br /><br />广告时间：<br />嵌入式数据库，除了hsqldb，我又发现一个更好的，它就是h2 database，性能更好，而且支持全文搜索、sequence、表级锁定、事务隔离级别，<a href="http://www.h2database.com/" target="_blank">http://www.h2database.com/</a>。
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/210118#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 01 Jul 2008 13:07:15 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/210118</link>
        <guid>http://spiritfrog.javaeye.com/blog/210118</guid>
      </item>
      <item>
        <title>jetty初体验</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/209921" style="color:red;">http://spiritfrog.javaeye.com/blog/209921</a>&nbsp;
          发表时间: 2008年06月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          一直以来，web container我主要就用tomcat。 websphere在做ibm portal的时候也接触过， 复杂的东西不太喜欢。听说resin的性能很好，下载了3.16pro试用一番，移植tomcat的应用到resin也没有碰到问题，不过eclipse的插件似乎还没有支持3.16的，所以开发用起来还有点麻烦。如果没有合法的license，启动pro版还总是会有提示说license is not valid，这就不爽了，本来还以为是完全开源免费的。看说明是pro版采用了native api 提供更好性能，我倒是更倾向于license更加开放的，于是就放弃了resin。<br />还有什么可以尝试呢？突然想到了jetty，jetty是原来的一位同事提到过，说他们用jetty来做开发环境的web container， 测试、正式平台才用tomcat。在javaeye论坛里面搜索jetty，看到dlee几度推荐，引起了兴趣。<br />这是其中一篇关于jetty的优点：<br /><a href="http://www.javaeye.com/topic/408?page=3" target="_blank">http://www.javaeye.com/topic/408?page=3</a><br /><div class="quote_title">dlee 写道</div><div class="quote_div"><br />两点，性能极佳，配置简单方便。<br />主要是设计思想的不同。Tomcat 主要是作为 JSP/Servlet 最新规范的参考实现而设计，属于学院派，但是显得庞大而杂乱。Tomcat 的性能很差，一般是作为 Http Server（如 Apache）的插件来用。Jetty 主要是作为企业级产品的嵌入式组件来设计的，可以非常方便地嵌入到其它产品中。而且 Jetty 是作为单独的 Http Server 来设计的，据 Jetty 开发人员的测试，Jetty 的性能几乎与 Apache 相当。Jetty 的体系结构结构精巧紧密，JBoss、JOnAS 缺省都是把 Jetty 作为他们的 Web Container 的。Tomcat 作为 Web Container 只是可选的。<br />Jetty 在国内用的人不多。我们目前全部开发都是在 Jetty 上做的，感觉 Jetty 还是非常稳定可靠的。Tomcat 开发的代码只要不使用 JSP/Servlet 最新规范中的内容，移植到 Jetty 上不费吹灰之力。Jetty 也支持到 JSP 1.2/Servlet 2.3 了（还不够用吗？呵呵）。生产环境，尤其是高负载的环境中还是使用 Jetty 更好。</div><br /><br />另外一篇关于jetty的license和性能<a href="http://www.javaeye.com/topic/775?page=1" target="_blank">http://www.javaeye.com/topic/775?page=1</a>：<br /><div class="quote_title">dlee 写道</div><div class="quote_div"><br />说起 Jetty，没有几个人知道，而实际上由于 Jetty 的 License 非常开放，采用 Jetty 的商业产品是非常多的。Resin 据说也非常棒，但是由于 License 的原因我们不可能使用 Resin。<br />对 Jetty 感兴趣的朋友可以到这里看看：<br /><a href="http://www.mortbay.com/mortbay/powered.html" target="_blank">http://www.mortbay.com/mortbay/powered.html</a><br />Jetty Powered<br />As a small, fast, embeddable web server and servlet container Jetty is used by a plethora of both commercial and open source projects.<br />We've listed just a few here to illustrate Jetty's versatility and the diversity of it's community. Feel free to contact us if you would like your product or project added here.<br />在这些使用 Jetty 的产品中不仅包括 JBoss、JOnAS 这样开源的 AppServer，还包括 WebLogic Business Connect 和 IBM Tivoli NetView 这样的商业产品。 <br /></div><br /><br /><div class="quote_title">dlee 写道</div><div class="quote_div"><br />现在大家对于 Jetty 的批判全部都集中在 Jetty 的性能方面。但是对于一个产品的判断性能仅仅是一个方面，当然是一个非常重要的方面，但是也不要以偏概全。<br />......<br />我举这个例子是为了说明什么？<br />我仍然要说 Jetty 是一个非常好的 Web Container。因为它的设计简练而清晰（Jetty 的代码要比 Tomcat 的代码简单和清晰的多），它非常容易被嵌入到其它产品之中。它用最少的代码提供了我们常用的几乎所有 Web Container 的功能。<br /></div><br /><br />看完以上帖子，能对jetty有个初步认识：<br />1、使用简单、配置简单<br />2、设计模块化、代码编写简炼易懂<br />3、tomcat的应用移植到jetty基本不用修改<br />3、非常合适嵌入到其他产品，可扩展性好<br />5、license是完全开放的，apache2.0 license<br /><br />ok，接下来看看jetty怎么用， 我也来实验一把，看到底是不是那么好。<br />到jetty官方的文档看看入门教程：<a href="http://docs.codehaus.org/display/JETTY/Jetty+Documentation" target="_blank">http://docs.codehaus.org/display/JETTY/Jetty+Documentation</a><br />咋一看，内容很多，我基本上走了一圈，下意识的找嵌入式webapp的demo和怎样移植一个以前的tomcat的webapp到jetty上来，还有eclipse的jetty插件。<br />还好，文档里面都有的，因此我觉得也主要关注Getting Started、Tutorials、Eclipse Workbench、Configuration这四个部分就可以了。<br />Getting Started告诉我们启动jetty只需要：java -jar start.jar etc/jetty.xml<br />因此就是一句java命令，指定一个配置文件作为参数即可；<br />Tutorials里主要就是看Embedding Jetty<br /><pre name="code" class="java">
Server server = new Server(8080);
Context root = new Context(server,"/",Context.SESSIONS);
root.addServlet(new ServletHolder(new HelloServlet("Ciao")), "/*");
server.start();
</pre><br />这样就等于配置了一个servlet mapping, 感觉是很神奇， 不过不用web.xml倒不是我想要的，我毕竟要兼顾不同web容器的兼容性。把Embedding Jetty里面的各种示例看了个遍，发现都没直接用web.xml的。<br />Eclipse Workbench中介绍了几个jetty for eclipse插件，试用了一下，感觉这个就不错了，简单可用：<a href="http://docs.codehaus.org/display/JETTY/Web+Tooling+Support" target="_blank">http://docs.codehaus.org/display/JETTY/Web+Tooling+Support</a><br />很多人推荐的jettylaucher反倒是没用起来， 似乎是还不支持最新的jetty6.1。<br />Configuration介绍了jetty.xml的配置，就是启动jetty指定的那个配置参数。<br />jetty自身的那些配置我倒一开始没看，一心在想怎样移植webapp到jetty这来，于是还真找到了，就在Contexts and Web Applications子章节里面有说明，分别打开Web Application Deployer  (static deploy)和 Context Deployer (hot deploy!)，发现分别说的是静态部署和动态部署。静态部署就是 jetty.home/webapps/下面的应用可以启动jetty时一次都给部署，跟tomcat.home/webapps也是一样的；如果能够直接指定contextpath和webapppath就好了，动态部署估计就是我想要的了，如果仔细看一下<br /><div class="quote_title">引用</div><div class="quote_div"><br />Typically a ContextDeployer is defined in a jetty.xml file:<br /><pre name="code" class="xml">
&lt;Call name="addLifeCycle">
  &lt;Arg>
    &lt;New class="org.mortbay.jetty.deployer.ContextDeployer">
      &lt;Set name="contexts">&lt;Ref id="Contexts"/>&lt;/Set>
      &lt;Set name="configurationDir">&lt;SystemProperty name="jetty.home" default="."/>/contexts&lt;/Set>
      &lt;Set name="scanInterval">1&lt;/Set>
    &lt;/New>
  &lt;/Arg>
&lt;/Call>
</pre><br /><br />The ContextDeployer will scan the configurationDir directory at intervals of scanInterval seconds for xml descriptors that define contexts. Any contexts found are deployed to the passed contexts reference to a HandlerContainer (this is normally an instance of ContextHandlerCollection).<br /><br />The deployment descriptors are in jetty xml format and are define and configure individual contexts. A minimal example is<br /><pre name="code" class="xml">
&lt;?xml version="1.0"  encoding="ISO-8859-1"?>
&lt;!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
&lt;Configure class="org.mortbay.jetty.webapp.WebAppContext">
  &lt;Set name="contextPath">/test&lt;/Set>
  &lt;Set name="war">&lt;SystemProperty name="jetty.home" default="."/>/webapps/test&lt;/Set>
&lt;/Configure>
</pre><br />This example creates an instance of org.mortbay.jetty.webapp.WebAppContext and sets the contextPath to be "/test" and the resourceBase to be "$jetty.home/webapps/test". Because the context used is a standard web application context, when started it will inspect the resourceBase for a WEB-INF/web.xml for further configuration.<br /><br />The ContextDeployer is added to the server as a LifeCycle. This simply means that the deployer will be started and stopped with the server. Ie when server.start() is called, then start will also be called on the deployer.<br /></div><br />可以看出jetty.home/contexts目录下保存着动态部署的jetty.xml，在这类xml中可以设定我要的contextpath和war目录， 从上例中就可以看出部署了一个/webapps/test应用， 启动jetty之后http://localhost:8080/test就可以看到。好了，这就简单了，copy一份出来，同样放到contexts目录下，改好contextpath和war，重启jetty，移植的也能正常跑了。<br /><br />当然也许觉得这样有些烦， 如果光是移植个把webapp到jetty这么干也罢了，要把jetty当作主流web开发用容器就显然不够简单。还好前面装的那个eclipse插件倒是省了不少事情，new 一个jetty server，把webapp添加到server，run即可。<br /><br />好了，到这里常规方式部署一个webapp已经没问题了， 但jetty的优点和特点不是嵌入式web容器吗？我怎样在程序里面启动jetty，并把webapp给部署掉呢？<br />这个倒是在官方文档中我也没找到怎么做， 还是在javaeye论坛里面给找到了办法：<br /><pre name="code" class="java">
public static void main(String[] args) throws Exception {
	Server server = new Server();
	BoundedThreadPool threadPool = new BoundedThreadPool();
	threadPool.setMaxThreads(100);
	server.setThreadPool(threadPool);
	Connector connector = new SelectChannelConnector();
	connector.setPort(8080); //端口
	server.setConnectors(new Connector[] { connector });
	WebAppContext context = new WebAppContext("你的web应用路径", "你的context");
	server.addHandler(context);
	server.setStopAtShutdown(true);
	server.setSendServerVersion(true);
	server.start();
	server.join();
}
</pre><br />看到了吧， 程序里面启动jetty，并发布你的应用，比较简单的吧。虽然代码是能做到，但我还是更喜欢用配置文件，怎么办？<br />先创建一个jetty-web.xml，就放在你的webapp目录下吧<br /><pre name="code" class="xml">
&lt;?xml version="1.0"?>
&lt;!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
&lt;Configure id="Server" class="org.mortbay.jetty.Server">

    &lt;Set name="ThreadPool">
      &lt;New class="org.mortbay.thread.QueuedThreadPool">
        &lt;Set name="minThreads">10&lt;/Set>
        &lt;Set name="maxThreads">200&lt;/Set>
        &lt;Set name="lowThreads">20&lt;/Set>
        &lt;Set name="SpawnOrShrinkAt">2&lt;/Set>
      &lt;/New>
    &lt;/Set>

    &lt;Call name="addConnector">
      &lt;Arg>
          &lt;New class="org.mortbay.jetty.nio.SelectChannelConnector">
            &lt;Set name="host">&lt;SystemProperty name="jetty.host" default="127.0.0.1"/>&lt;/Set>
            &lt;Set name="port">&lt;SystemProperty name="jetty.port" default="8080"/>&lt;/Set>
            &lt;Set name="maxIdleTime">30000&lt;/Set>
            &lt;Set name="Acceptors">2&lt;/Set>
            &lt;Set name="statsOn">false&lt;/Set>
            &lt;Set name="confidentialPort">8443&lt;/Set>
	    &lt;Set name="lowResourcesConnections">5000&lt;/Set>
	    &lt;Set name="lowResourcesMaxIdleTime">5000&lt;/Set>
          &lt;/New>
      &lt;/Arg>
    &lt;/Call>

    &lt;Set name="handler">
      &lt;New id="Handlers" class="org.mortbay.jetty.handler.HandlerCollection">
        &lt;Set name="handlers">
         &lt;Array type="org.mortbay.jetty.Handler">
           &lt;Item>
             &lt;New id="RequestLog" class="org.mortbay.jetty.handler.RequestLogHandler"/>
           &lt;/Item>
	   &lt;Item>
		   &lt;New class="org.mortbay.jetty.webapp.WebAppContext">  
			  &lt;Set name="contextPath">/demo&lt;/Set>  
                          &lt;Set name="war">xx&lt;/Set>  &lt;!--你的web应用根目录-->
                 &lt;/New>  
          &lt;/Item>
         &lt;/Array>
        &lt;/Set>
      &lt;/New>
    &lt;/Set>
    
    &lt;Ref id="RequestLog">
      &lt;Set name="requestLog">
        &lt;New id="RequestLogImpl" class="org.mortbay.jetty.NCSARequestLog">
          &lt;Set name="filename">&lt;SystemProperty name="jetty.logs" 
		 />/yyyy_mm_dd.request.log&lt;/Set>
          &lt;Set name="filenameDateFormat">yyyy_MM_dd&lt;/Set>
          &lt;Set name="retainDays">90&lt;/Set>
          &lt;Set name="append">true&lt;/Set>
          &lt;Set name="extended">true&lt;/Set>
          &lt;Set name="logCookies">false&lt;/Set>
          &lt;Set name="LogTimeZone">GMT&lt;/Set>
        &lt;/New>
      &lt;/Set>
    &lt;/Ref>

    &lt;Set name="stopAtShutdown">true&lt;/Set>
    &lt;Set name="sendServerVersion">true&lt;/Set>
    &lt;Set name="sendDateHeader">true&lt;/Set>
    &lt;Set name="gracefulShutdown">1000&lt;/Set>

&lt;/Configure>
</pre><br />以上是一个相对完整的jetty.xml，应该可以根据需要简化，重要的是加入了<br /><pre name="code" class="java"> 
&lt;Item>
&lt;New class="org.mortbay.jetty.webapp.WebAppContext">  
	&lt;Set name="contextPath">/demo&lt;/Set>  
        &lt;Set name="war">xx&lt;/Set>  &lt;!--你的web应用根目录-->
 &lt;/New>  
 &lt;/Item>
</pre><br />一个新的handler，实现了web应用发布目录和context的指定。<br />这个时候，如果在程序中启动jetty，只需要：<br /><pre name="code" class="java">
public static void main(String[] args) throws Exception {
	Server server = new Server();
	XmlConfiguration configuration = new XmlConfiguration(
	new FileInputStream(
		"xx/demo/jetty-web.xml")); //指定自定义的jetty.xml路径
	configuration.configure(server);
	server.start();
}
</pre><br /><br />其实连这个main函数都可不必要了，只要用org.mortbay.xml.XmlConfiguration作为启动类，Program arguments中填上自定义的jetty.xml即可。这样连eclipse插件都可以丢掉不用了。<br /><br />总结：<br />本文作为jetty的初体验体会，着重于怎样移植webapp到jetty，以及如何快速在jetty上部署webapp，也尝试了嵌入方式启动webapp，这些工作在找到方法后很轻松（实际上我可找了很久）。主要是完成你的webapp对jetty的配置，然后start！<br />本文并没有重点讨论jetty.xml的配置，这部分内容可以根据官方文档和看jetty自带的examples来学习，以后有时间看了再说。<br /><br />注意：<br />jetty6是基于servlet2.5和jsp2.1设计的，<br />几个核心包是jetty-6.1.11.jar、jetty-util-6.1.11.jar、servlet-api-2.5-6.1.11.jar；<br />如果以嵌入式启动，需要引用jsp2.1包，我一开始引用的是jsp2.0包，结果造成了一些方法调用对不上参数的问题，明显是class版本有差别，换用jsp2.1就可以了。<br />另外对于嵌入式，/lib/naming和/lib/plus下的包最好也全部引入。<br />有时候jetty配置文件中会有如下引用jetty.home等变量<br />&lt;Set name="config">&lt;SystemProperty name="jetty.home" default="."/>/etc/realm.properties&lt;/Set><br />需要在启动程序配置中加上vm参数，如果是jetty.home,则加上<br />-Djetty.home=D:/devworkspace/jetty-6.1.11
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/209921#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 30 Jun 2008 20:54:33 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/209921</link>
        <guid>http://spiritfrog.javaeye.com/blog/209921</guid>
      </item>
      <item>
        <title>vnc+ssh</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/209879" style="color:red;">http://spiritfrog.javaeye.com/blog/209879</a>&nbsp;
          发表时间: 2008年06月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          留个空，回去写。
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/209879#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 30 Jun 2008 17:58:54 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/209879</link>
        <guid>http://spiritfrog.javaeye.com/blog/209879</guid>
      </item>
      <item>
        <title>恼人的mldonkey段错误问题</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/209867" style="color:red;">http://spiritfrog.javaeye.com/blog/209867</a>&nbsp;
          发表时间: 2008年06月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          mldonkey号称linux下的下载之王，同时支持bt和ed2k，ftp更是不在话下。功能强大之余，还很省内存，因为不带复杂的ui界面， 只提供了一个web管理和监控页面（个人蛮喜欢这种方式的，后台运行就只要命令行再加上改改配置文件， 监控在web端）<br />更换机器为amd64x2机之后， ubuntu8.04 也装了个64的 ， 竟然发现从源里面下载的mldonkey总是发生段错误退出现象。<br /><br />以前老机器用的32位ubuntu，mldonkey却没有发生这个问题， google上找了n久没有发现解决办法， 而且我又不想重新编译（到处查找缺少的依赖包的过程很痛苦）只好放弃， 换着amule。<br /><br />可惜amule也有同样的自动退出问题， 不过这个时间一般能拖几个小时， mldonkey却只能撑不到10分钟。<br /><br />本来以为就没有希望用mldonkey了，要知道我一直很喜欢它的，它还有一个特点就是能够同时连几个server，增大获取源的机会！<br /><br />直到看到<a href="http://forum.ubuntu.org.cn/viewtopic.php?t=127651&postdays=0&postorder=asc&start=0" target="_blank">http://forum.ubuntu.org.cn/viewtopic.php?t=127651&postdays=0&postorder=asc&start=0</a><br /><br />发现有人跟我碰到了相同问题，而且他还解决了。我看他的做法就是自己编译，同时给出了几个关联的包：安装四个最新ocaml3.10.2相关的deb包。我也照着他的步骤，下载了mldonkey的最新源码，并开始自己编译，期间就会提示要下载并安装ocaml，编译安装完成的mldonkey经过几个小时的挂机下载测试确实段错误问题了。<br /><br />终于，mldonkey又回来了！看来有时候不愿意做的事情就是你为了成功必须做的事情，linux上程序的种种问题可能最后就是试试自己重新编译。
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/209867#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 30 Jun 2008 17:53:01 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/209867</link>
        <guid>http://spiritfrog.javaeye.com/blog/209867</guid>
      </item>
      <item>
        <title>ubuntu修改网卡mac地址</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/209847" style="color:red;">http://spiritfrog.javaeye.com/blog/209847</a>&nbsp;
          发表时间: 2008年06月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          因为家里的宽带网被绑定了原来一台老机器的mac地址，换了新机器后上网就需要改mac，这下又是ubuntu系统， 不像windows那样在网络连接配置中就可以修改<br /><br />临时修改：<br />/sbin/ifconfig eth0 down<br />/sbin/ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx<br />/sbin/ifconfig eht0 up<br />或者<br />ip link set eth0 down<br />ip link set eth0 address xx:xx:xx:xx:xx:xx<br />in ling set eth0 up<br />永久修改：<br /><br />可以将上面几行放入 /etc/rcS.d/rc.local 文件  ，rc.local中的bash命令在启动系统时会自动执行<br />或者<br /><br />直接编辑 /etc/network/interfaces 文件<br />pre-up ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx<br /><br /><img src="/images/smiles/icon_smile.gif"/>感觉上就是在这个文件里写ifconfig命令
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/209847#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 30 Jun 2008 17:30:12 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/209847</link>
        <guid>http://spiritfrog.javaeye.com/blog/209847</guid>
      </item>
      <item>
        <title>ifconfig常用命令</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/209844" style="color:red;">http://spiritfrog.javaeye.com/blog/209844</a>&nbsp;
          发表时间: 2008年06月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Linux下网卡命名规律：eth0，eth1。第一块以太网卡，第二块。lo为环回接口，它的IP地址固定为127.0.0.1，掩码8位。它代表你的机器本身。<br /><br />1、ifconfig是查看网卡的信息。<br /><br />ifconfig [Interface]<br /><br />Interface是可选项，如果不加此项，则显示系统中所有网卡的信息。如果添加此选项则显示所指定的网卡信息<br /><br />例如：ifconfig eth0<br />eth0 Link encap:Ethernet<br />            HWaddr 00:0C:29:F3:3B:F2<br />            inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0<br />            UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />            RX packets:78 errors:0 dropped:0 overruns:0 frame:0<br />            TX packets:104 errors:0 dropped:0 overruns:0 carrier:0<br />            collisions:0 txqueuelen:100<br />            RX bytes:11679 (11.4 Kb)<br />            TX bytes:14077 (13.7 Kb)<br />            Interrupt:10 Base address:0x1080<br />我们可以看到<br /><br />第一行：连接类型：Ethernet（以太网）HWaddr（硬件mac地址）<br /><br />第二行：网卡的IP地址、子网、掩码<br /><br />第三行：UP（代表网卡开启状态）RUNNING（代表网卡的网线被接上）MULTICAST（支持组播）MTU:1500（最大传输单元）：1500字节<br /><br />第四、五行：接收、发送数据包情况统计<br /><br />第七行：接收、发送数据字节数统计信息。<br /><br /> <br />2、ifconfig 配置网卡<br /><br />配置网卡的IP地址<br /><br />ifconfig eth0 192.168.0.1 netmask 255.255.255.0<br /><br />在eth0上配置上192.168.0.1 的IP地址及24位掩码。若想再在eth0上在配置一个192.168.1.1/24 的IP地址怎么办？用下面的命令<br />ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0<br /><br />这时再用ifconifg命令查看，就可以看到两个网卡的信息了，分别为：eth0和eth0:0。若还想再增加IP，那网卡的命名就接着是：eth0:1、eth0:2...想要几个就填几个。ok！<br /><br />配置网卡的硬件地址<br /><br />ifconfig eth0 hw ether xx：xx：xx：xx：xx：xx<br />就将网卡的硬件地址更改了，此时你就可以骗过局域网内的IP地址邦定了。<br /><br />将网卡禁用<br />ifconfig eth0 down<br /><br />将网卡启用<br />ifconfig eth0 up<br /><br />ifconfig 命令的功能很强大，还可以设置网卡的MTU，混杂模式等。就不一一介绍了，用时间可以自己研究一下。<br /><br /><br />注意：用ifconfig命令配置的网卡信息，在网卡重启后机器重启后，配置就不存在，也就是说是临时的。要想将上述的配置信息永远的存的电脑里，那就要修改网卡的配置文件/etc/network/interfaces<br /><br />转自：<br /><a href="http://www.cnblogs.com/taobataoma/archive/2007/12/27/1016689.html" target="_blank">http://www.cnblogs.com/taobataoma/archive/2007/12/27/1016689.html</a>
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/209844#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 30 Jun 2008 17:23:31 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/209844</link>
        <guid>http://spiritfrog.javaeye.com/blog/209844</guid>
      </item>
      <item>
        <title>rtorrent的使用</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/209839" style="color:red;">http://spiritfrog.javaeye.com/blog/209839</a>&nbsp;
          发表时间: 2008年06月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          本来也一直用的奔流bt，看见论坛里很多人推荐用rtorrent，看看关于它的介绍还是很吸引人的：<br /><div class="quote_title">引用</div><div class="quote_div">BT下载 - 高速占内存少而且功能强大<br />o支持协议加密，防止ISP封BT<br />o支持peer交换，客户端之间交换peer，让每个客户可以连上更多的客户<br />o支持多Tracker协议， UDP Tracker<br />o支持选择文件下载，以及调整下载优先级<br />o支持通过DHT网络实现无种下载<br />o支持快速恢复（Fast Resume），下载中断后无需重新hash，节约时间<br />o支持nTorrent（windows）远程控制</div><br /><br />sudo apt-get install后，发现居然是个命令行的，一上来就懵了完全不会用。<br />于是上官网，查看user guide <a href="http://libtorrent.rakshasa.no/wiki/RTorrentUserGuide" target="_blank">http://libtorrent.rakshasa.no/wiki/RTorrentUserGuide</a><br /><br />快速扫了一遍，得到了以下的几个有用的命令提示：<br /><div class="quote_title">引用</div><div class="quote_div"><br /> General note about key combinations: ^ means the Ctrl-key. M-x means Meta-x (Usually Alt-x or Esc-x)<br />    Adding and removing torrents<br />    backspace 	Add torrent using an URL or file path. Use tab to view directory content and do auto-complete. Also, wildcards can be used. For example: ~/torrent/*<br />    return 	Same as backspace, except the torrent remains inactive. (Use ^s to activate)<br />    ^o 	Set new download directory for selected torrent. Only works if torrent has not yet been activated.<br />    ^s 	Start download. Runs hash first unless already done.<br />    ^d 	Stop an active download, or remove a stopped download.<br />    ^r 	Initiate hash check of torrent. Without starting to download/upload.<br /><br />    Throttling<br />    a/s/d Increase the upload throttle by 1/5/50 KB.<br />    z/x/c Decrease the upload throttle by 1/5/50 KB.<br />    A/S/D Increase the download throttle by 1/5/50 KB.<br />    Z/X/C Decrease the download throttle by 1/5/50 KB.<br /><br />    Note that all throttling is applied globally and not per torrent.<br /></div><br />根据以上这些信息，先按^o设定一下下载目录，再按"backspace"，在load-start>提示符下，输入torrent的路径， 就可以直接开始下载了。通过a/s/d可以增加上传限速，而A/S/D则是增加下载限速。<br /><br />不过每次启动rtorrent，总是提示文件.rtorrent.rc找不到，而我在本地找了个遍都没有找到。后来通过还是google才发现这个文件直接安装是不带的，要从官网上下载，而这个文件正是rtorrent的配置文件，<a href="http://libtorrent.rakshasa.no/browser/trunk/rtorrent/doc/rtorrent.rc?rev=latest" target="_blank">http://libtorrent.rakshasa.no/browser/trunk/rtorrent/doc/rtorrent.rc?rev=latest</a><br /><br />发现如果浏览官网的wiki是能够看到一项：rtorrent.rc example的，点进去发现链接跟上面的一样。<br /><br />wiki提供的信息比较全面， 远比直接从主页进user guide看到的多。把这个rtorrent.rc的内容复制下来，在本地的/home/yourhome目录下创建.rtorrent.rc文件，再把复制的内容粘贴进去。里面的设置一目了然，做了设定之后，重启rtorrent即能生效。<br /><br />刚试用rtorrent的时候，感觉速度提不上来， 比起奔流有些差距（奔流一般我都能有200k/s up的下载速度，但是rtorrent开了半个小时，平均也就40－50k/s）；后来看到网上很多人说要开dht，不支持dht的bt下载软件形同鸡肋，于是又到wiki上查看关于dht的设置：<br /><div class="quote_title">引用</div><div class="quote_div"><br />    # Enable DHT support for trackerless torrents or when all trackers are down.<br /><br />    # May be set to "disable" (completely disable DHT), "off" (do not start DHT),<br /><br />    # "auto" (start and stop DHT as needed), or "on" (start DHT immediately).<br /><br />    # The default is "off". For DHT to work, a session directory must be defined.<br /><br />    #<br /><br />    # dht = auto# UDP port to use for DHT.<br /><br />    #<br /><br />    # dht_port = 6881<br /></div><br />取消以上关于dht的注释即可，而默认确实是关闭dht的。再试试看下载的速度， 这下居然能够到500kup了，威力巨大阿。<br /><br />到这里，速度上已经让我满意了，再看看rtorrent.rc中还有没有比较实用的设置：<br /><div class="quote_title">引用</div><div class="quote_div"><br />    # Default directory to save the downloaded torrents.<br />    directory =/home/lynn/bt<br />    directory指定了下载文件的存放目录。<br /><br />    # Default session directory. Make sure you don't run multiple instance<br />    # of rtorrent using the same session directory. Perhaps using a<br />    # relative path?<br />    session =/home/lynn/bt/session<br />    session指定session的存放目录，有了它就能进行恢复下载。不然每次重启都要手动添加。<br /><br />    # Watch a directory for new torrents, and stop those that have been<br />    # deleted.<br />    schedule = watch_directory,5,5,load_start=/home/lynn/bt/watch/*.torrent<br />    schedule = untied_directory,5,5,stop_untied=<br />    这两项启动了rtorrent的监视功能，将种子文件放入load_start指定的目录中后，rtorrent将自动开始下载。<br /><br />    # example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0<br />    schedule = ratio,60,60,"stop_on_ratio=2000,200M,2000"<br />    可以设置上传和下载达到一定比例后停止，大概这里的比例是百分之一为单位，所以2000就等于20倍<br /><br />    我的locale是zh_CN.UTF-8的因此我在配置文件中添加了下面一行，这样生成的目录和文件名就不是乱码了。<br />    encoding_list=UTF-8<br /></div><br />    另外，还找到一篇文章，说得很全面：<br />    <a href="http://www.cublog.cn/u/17248/showart_673200.html " target="_blank">http://www.cublog.cn/u/17248/showart_673200.html </a><br /><br />可以看出，rtorrent小巧、功能强大， 监视种子开始新下载功能更是一个新颖又实用的地方，更难得的是速度很快，已经没有必要眷念windows下的bt下载软件，别扭的用wine+utorrent了， 作为linux的bt下载又多了一个不错的选择。
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/209839#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 30 Jun 2008 17:06:41 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/209839</link>
        <guid>http://spiritfrog.javaeye.com/blog/209839</guid>
      </item>
      <item>
        <title>xml的自动提示</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/209604" style="color:red;">http://spiritfrog.javaeye.com/blog/209604</a>&nbsp;
          发表时间: 2008年06月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          用eclipse，在导入相应的包后（有人说不导包也有提示，因为默认的eclipse导入了jdk的包），eclipse会有代码提示功能。<br />那么XML文件能不能也这样呢？其实也是可以的，只不过导包的地方不一样。下面以spring为例（虽然Myeclipse6.5中已经集成了，这里只是示范说明）。<br /><br />进入：window -> Preference... -> MyEclipse -> Editors -> XML ->XML Catalog<br /><br />选择：选中“User Specified Entries”，点击“Add...”按钮<br /><br />填入：<br /><br />URI: 请选择本地文件系统上SPRING_HOME\dist\resources\spring-beans-2.0.xsd 文件<br />Key Type: 选择Schema Location<br />Key: http://www.springframework.org/schema/beans/spring-beans-2.0.xsd<br /><br />点击确定<br /><br />将spring配置文件关闭再重新打开即可。可以使用MyEclipse XML Editor打开这些xml文件<br /><br />转自：<a href="http://heyjjay8.javaeye.com/blog/208386" target="_blank">http://heyjjay8.javaeye.com/blog/208386</a>
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/209604#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 30 Jun 2008 09:45:16 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/209604</link>
        <guid>http://spiritfrog.javaeye.com/blog/209604</guid>
      </item>
      <item>
        <title>resin上跑第一个web实例</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/207632" style="color:red;">http://spiritfrog.javaeye.com/blog/207632</a>&nbsp;
          发表时间: 2008年06月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          刚刚成功试过resin启动，默认的root是resin的doc和admin的一个index页面。<br />现在想移植一个tomcat的web实例到resin来。于是想找eclipse的resin插件，结果发现不支持resin3.1, 再找了找还真没找到了。<br />没办法， 看看怎样直接在eclipse中用命令行运行好了。这倒好， resin的主页上有提供这个方法的教学：<br /><a href="http://wiki.caucho.com/IDE" target="_blank">http://wiki.caucho.com/IDE</a><br /><div class="quote_title">引用</div><div class="quote_div">Starting Resin from within the IDE<br />Resin is started and stopped by the IDE. Console messages appear in the console window of the IDE.<br />IDE configuration	value	description<br />Classpath	all of the jars in resin.home/lib, see Global Library|<br />Java argument	-Djava.system.class.loader=com.caucho.loader.SystemClassLoader	<br />Main class	com.caucho.server.resin.Resin	<br />Program argument	-conf conf/development.conf	See development.conf<br />Program argument	-server-root /path/to/webapp	The location of the web-app<br />[edit] Additional configuration<br /><br />Some systems require additional configuration, indicated by Resin error messages.<br />IDE configuration	value	description<br />Classpath	java.home/lib/tools.jar	Needed for compiling java files<br />Java argument	-Dresin.home=/usr/local/resin	Needed if Resin cannot discover the value programmatically </div><br />整理一下，应该是这样的<br />resin运行需要指定三个参数：root、conf、resin.home，<br />而root和resin.home应当都是同一个位置，就是resin安装的根目录<br />而conf默认的是resin.home/conf/resin.conf, 这个会根据每个web应用不同，因此往往需要创建一个。<br />1） classpath中要把resin.home/lib下面的所有jar包添加进来<br />2）运行的主程序是com.caucho.server.resin.Resin<br />3）通过jvm参数指定resin.home, 	-Dresin.home=/usr/local/resin;<br />     主程序参数指定root和conf：-conf conf/development.conf<br />                                             -server-root /path/to/webapp<br />4）添加jvm参数：-Djava.system.class.loader=com.caucho.loader.SystemClassLoader<br />经过我的实验， root实际上可以不指定。<br /><br />这个conf比较重要， 官方的wiki推荐我们使用<a href="http://wiki.caucho.com/Development.conf" target="_blank">http://wiki.caucho.com/Development.conf</a>，我把内容贴出来，注意看里面的注释：<br /><pre name="code" class="xml">
&lt;resin xmlns="http://caucho.com/ns/resin"
       xmlns:resin="http://caucho.com/ns/resin/core">

  &lt;resin:set var="http.port" default="8080"/>
  &lt;resin:set var="log.level" default="fine"/>

  &lt;log path="stdout:">
    &lt;logger name="" level="${Var['log.level']}"/>
  &lt;/log>

  &lt;server>
    &lt;class-loader>
      &lt;tree-loader path="${resin.home}/lib"/>
    &lt;/class-loader>

    &lt;http server-id="" host="*" port="${Var['http.port']}"/>

    &lt;dependency-check-interval>2s&lt;/dependency-check-interval>

    &lt;javac compiler="internal" args=""/>

    &lt;resin:import path="${resin.home}/conf/app-default.xml"/>

    &lt;resin:if test="${resin.isProfessional()}">
      &lt;cache path="WEB-INF/work/cache" memory-size="8M"/>
    &lt;/resin:if>

    &lt;web-app-default>
      &lt;cache-mapping url-pattern="/" expires="5s"/>
      &lt;cache-mapping url-pattern="*.gif" expires="60s"/>
      &lt;cache-mapping url-pattern="*.jpg" expires="60s"/>

      &lt;allow-servlet-el/>
    &lt;/web-app-default>

    &lt;host id="">
      &lt;web-app id="/">&lt;!--这里可以加你的host， 可能是像下面这样-->
&lt;!--&lt;web-app id='/myprojectName' document-directory="d:\myprojectName\webapp"> -->
        &lt;session-config>
          &lt;file-store>WEB-INF/work/sessions&lt;/file-store>
        &lt;/session-config>
      &lt;/web-app>
    &lt;/host>
  &lt;/server>
&lt;/resin>
</pre><br />里面加了些注释的地方，说的是如何设定web应用的context和path<br />这里面还可以设置日志级别以及resin启动的端口<br />对于log的设定可以参考：<br /><a href="http://www.caucho.com/resin-3.0/config/log.xtp#stdout-log" target="_blank">http://www.caucho.com/resin-3.0/config/log.xtp#stdout-log</a><br />实际上resin的log就是基于JDK logging interface
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/207632#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 24 Jun 2008 18:48:02 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/207632</link>
        <guid>http://spiritfrog.javaeye.com/blog/207632</guid>
      </item>
      <item>
        <title>resin3.1 pro和普通版的区别</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/207610" style="color:red;">http://spiritfrog.javaeye.com/blog/207610</a>&nbsp;
          发表时间: 2008年06月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          一开始就下载的是resin 3.1.6pro，也没太在意会有什么区别。<br />通过官方文档学习了下如何启动resin，<a href="http://caucho.com/resin/doc/resin-web-server.xtp#Running%20Resin" target="_blank">http://caucho.com/resin/doc/resin-web-server.xtp#Running%20Resin</a><br />按照guide，在windows下成功启动resin后，总是发现有提示:<br /> Socket JNI library is not available.<br /> Resin will still run but performance will be slower.<br />怎么还要jni的，感到不明白，于是google上查找了一番，得知需要将resin.dll copy到windows/system32<br />这样做了之后， 又提示license invalid， 原来pro还要license...<br />那么pro版和普通版到底有什么区别呢？<br /><a href="http://blog.csdn.net/CAYU/archive/2007/07/08/1682407.aspx" target="_blank">http://blog.csdn.net/CAYU/archive/2007/07/08/1682407.aspx</a><br />resin pro 版本的 和resin 普通版本的文件是一样的，不同的地方就是pro 版本多了两个包<br />pro.jar 和 license.jar 包。<br />然后我们在来看看代码.<br />resin.jar 包中使用反射方式载入 pro.jar 和 license.jar 中的类，如果没有当然就错误。提示的当前不是pro版本。<br />如果载入成功。license.jar 就开始验证license文件。如果满足上边两个要求后。<br />pro.jar 就载入相应的类，看当前可以使用那些功能，主要是 vfs 部分 看jni载入成功否.<br /><br />这样就可以看出，pro版实际是利用了native的一些特性来提升性能，但获得这点性能提升又不是免费的，需要license；pro和非pro，对于我只是学习开发而言根本没有什么区别。于是换回普通版的resin，不用再看那个恼人的提示了。
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/207610#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 24 Jun 2008 17:39:53 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/207610</link>
        <guid>http://spiritfrog.javaeye.com/blog/207610</guid>
      </item>
      <item>
        <title>mysql恢复忘记的root密码</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/207358" style="color:red;">http://spiritfrog.javaeye.com/blog/207358</a>&nbsp;
          发表时间: 2008年06月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在windows下：<br />打开命令行窗口，停止mysql服务： Net stop mysql<br />启动mysql，一般到mysql的安装路径，找到 mysqld-nt.exe<br />执行：mysqld-nt --skip-grant-tables 当前窗口将会停止。<br />另外打开一个命令行窗口，执行mysql 如果提示没有这个命令，先进入MYSQL的安装位置下BIN目录再运行mysql>use mysql<br />>update user set password=password("new_password") where user="root";<br />>flush privileges;<br />>exit<br /><br />用Ctrl+Alt+Del，找到mysqld-nt的进程杀掉它，在重新启动mysql-nt服务，就可以用新密码登录了<br /><br /><br />在linux下：<br />如果 MySQL 正在运行，首先杀之： killall -TERM mysqld。<br />启动 MySQL ：bin/safe_mysqld --skip-grant-tables &<br />就可以不需要密码就进入 MySQL 了。<br />然后就是<br />>use mysql<br />>update user set password=password("new_pass") where user="root";<br />>flush privileges;<br />重新杀 MySQL ，用正常方法启动 MySQL 。
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/207358#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 24 Jun 2008 10:40:24 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/207358</link>
        <guid>http://spiritfrog.javaeye.com/blog/207358</guid>
      </item>
      <item>
        <title>mysql基础命令及配置</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/207289" style="color:red;">http://spiritfrog.javaeye.com/blog/207289</a>&nbsp;
          发表时间: 2008年06月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          mysql的配置和命令在windows和linux下基本相似，差别主要在启动mysql：<br />在windows下，mysql启动的命令有:<br />mysqld<br />mysqld-nt<br />mysql-max<br />mysql-max-nt<br />差别可以参考<a href="http://www.devside.net/guides/windows/mysql" target="_blank">http://www.devside.net/guides/windows/mysql</a><br />执行命令mysqld --verbose --help，看到<br />Usage: mysqld [OPTIONS]<br />NT and Win32 specific options:<br />  --install                     Install the default service (NT)<br />  --install-manual              Install the default service started manually (NT)<br />  --install service_name        Install an optional service (NT)<br />  --install-manual service_name Install an optional service started manually (NT)<br />  --remove                      Remove the default service from the service list (NT)<br />  --remove service_name         Remove the service_name from the service list (NT)<br />  --enable-named-pipe           Only to be used for the	default server (NT)<br />  --standalone                  Dummy option to start as a standalone server (NT)<br />这些就是NT特有的了， 可以看出mysql可以包装成windows服务来方便管理其运行。<br />--standalone，非服务的独立运行。<br />--enable-named-pipe，解释是：allows connections to other NT machines without being dependant on a specific network layer (TCP/IP or IPX)；看了关于官方参考手册，才知道是命名管道，专用于nt机器之间的网络通信，不同于tcp/ip协议。<br />这是以mysqld启动加这个参数是不行的，必须以mysql-max或者mysql-max-nt命令启动才能加这个参数。<br />因此，windows启动mysql，分为两类：<br />服务方式启动mysql，net start mysql服务名<br />独立运行，mysqld --standalone --console<br />加上console参数，能够看到控制台消息。<br /><br /><em>以下以linux为环境</em><br /><strong>命令：</strong><br />检查mysql是否运行：sudo netstat -tap | grep mysql<br /><br />启动：sudo /etc/init.d/mysql start<br />关闭：sudo /etc/init.d/mysql stop or mysqladmin -uroot -p shutdown<br />重启：sudo /etc/init.d/mysql restart<br /><br />登入命令： mysql -u root -p123456<br />(-p后面跟着密码，不能有空格，但是-u root和-uroot 都可以)<br /><br />更改root口令： mysqladmin -u root -p password 123456<br /><br />开启远程访问：<br />修改文件/etc/mysql/my.cnf<br />＃bind-address= 127.0.0.1<br />去掉前面的注释，变成bind-address= 127.0.0.1<br /><br />创建用户：<br />create user test identified by 'test-password';<br /><br />创建数据库并且指定编码集：<br />create database testdb default character set utf8 default collate utf8_general_ci;<br /><br />分配用户权限：<br />grant all on testdb.* to test@localhost identified by 'test-password';<br />＊ 注意：要使用JDBC从远程连接MySQL，就必须正确设置test用户权限，MySQL的访问权限由用户名，客户端机器名和口令共同组成，上例表示仅允许test用户在本机(localhost)通过口令连接MySQL。<br /><br /><strong>my.conf配置：</strong><br />中文支持：<br />[mysqld]配置节中加入<br /># 设置默认的字符集UTF-8：<br />    character-set-server=utf8<br />    collation-server=utf8_general_ci<br />    default-character-set=utf8<br /><br />此时，服务端编码已经设置完成，查看编码：show variables like '%char%';<br />+--------------------------+----------------------------+<br />| Variable_name            | Value                      |<br />+--------------------------+----------------------------+<br />| character_set_client     | latin1                     | <br />| character_set_connection | latin1                     | <br />| character_set_database   | utf8                       | <br />| character_set_filesystem | binary                     | <br />| character_set_results    | latin1                     | <br />| character_set_server     | utf8                       | <br />| character_set_system     | utf8                       | <br />| character_sets_dir       | /usr/share/mysql/charsets/ | <br />+--------------------------+----------------------------+<br />8 rows in set (0.00 sec)<br />接着在连接的时候，需要指定编码也是utf8；<br />mysql -uroot -p --default-character-set=utf8<br />再查看<br />mysql> show variables like '%char%';<br />+--------------------------+----------------------------+<br />| Variable_name            | Value                      |<br />+--------------------------+----------------------------+<br />| character_set_client     | utf8                       | <br />| character_set_connection | utf8                       | <br />| character_set_database   | utf8                       | <br />| character_set_filesystem | binary                     | <br />| character_set_results    | utf8                       | <br />| character_set_server     | utf8                       | <br />| character_set_system     | utf8                       | <br />| character_sets_dir       | /usr/share/mysql/charsets/ | <br />+--------------------------+----------------------------+<br />8 rows in set (0.00 sec)<br />好了，都是utf8了<br /><br />事实上，客户端的编码设定也可以在my.cnf中做一个默认的设置：<br />[client]配置节添加：<br />default-character-set=utf8<br />另外在[mysqld]中追加对connection的编码设定<br />init_connect='SET NAMES utf8' （设定连接mysql数据库时使用utf8编码，以让mysql数据库为utf8运行） <br /><br />数据库引擎默认设置<br /># 设置默认为INNODB表，支持事务：<br />default-storage-engine=INNODB<br /><br />更详细的配置参考：<br /><a href="http://hi.baidu.com/%CA%AB%D5%B9/blog/item/42f033fa3d4b0d8b9f5146e4.html" target="_blank">http://hi.baidu.com/%CA%AB%D5%B9/blog/item/42f033fa3d4b0d8b9f5146e4.html</a>
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/207289#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 24 Jun 2008 00:57:29 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/207289</link>
        <guid>http://spiritfrog.javaeye.com/blog/207289</guid>
      </item>
      <item>
        <title>Tor+Privoxy+FoxyProxy+Firefox访问被限制的优秀网站</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/206516" style="color:red;">http://spiritfrog.javaeye.com/blog/206516</a>&nbsp;
          发表时间: 2008年06月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          先看看什么是Tor，直接copy自<a href="http://www.torproject.org/overview.html.zh-cn" target="_blank">http://www.torproject.org/overview.html.zh-cn</a><br />考虑到不通过有效的代理，将无法访问，就直接copy出来了：<br /><div class="quote_title">引用</div><div class="quote_div"><br />Tor 是一个由虚拟通道组成的网络，团体和个人用它来保护自己在互联网上的隐私和安全。同时它使得软件开发人员能够创建具有内建隐私保护特性的新的通信工具。 Tor 为一系列应用提供了基础，通过这些应用，组织和个人可以在公开的网络上分享信息而不必担心隐私受到威胁。<br /><br />个人使用 Tor 避免网站追踪他们和他们的家庭成员，或者连接到被本地 ISP 封锁的新闻站点、即时通讯服务等等。 Tor 的隐匿服务（hidden services）使得用户能够发布网站和其他服务而不必泄露站点的位置。 Individuals also use Tor for socially sensitive communication: chat rooms and web forums for rape and abuse survivors, or people with illnesses.<br /><br />记者使用 Tor 更安全地与告密者和持不同政见者交流。非政府组织（Non-governmental organizations, NGOs）使用 Tor，当它们的工作人员在国外时，他们可以连接自己的网站，而周围的人对他们的工作却一无所知。<br /><br />独立媒体中心（Indymedia）之类的团体建议使用 Tor 来保护他们成员在线的隐私和安全。电子前沿基金会（Electronic Frontier Foundation, EFF）之类的社会活动团体建议将 Tor 作为维护公民在线自由的一种机制。 Corporations use Tor as a safe way to conduct competitive analysis, and to protect sensitive procurement patterns from eavesdroppers. 他们还用它来代替传统的虚拟专用网络（VPNs），后者会泄露精确的通信量和通信时间—— 最近员工在什么地点工作？在什么地点有员工访问求职网站？哪些研究分支在和公司的专利律师交流？<br /><br />A branch of the U.S. Navy uses Tor for open source intelligence gathering, 它的一个小组最近在中东部署的时候也使用了 Tor。执法人员使用 Tor，一方面为了在访问和监视网站时不在网站的日志中留下政府部门的 IP 地址，另一方面为了特情引诱（sting operations）的安全。<br /><br />Tor 的用户的多样性正是使之如此安全的部分原因。 Tor 把你隐藏在网络上的其他用户之中，所以 Tor 的用户群越发庞大和复杂，你的匿名性就会得到越好的保护。<br />我们为什么需要 Tor<br /><br />Tor 保护你抵御一种普遍的网络监视行为——“流量分析（traffic analysis）”。使用流量分析可以在一个公共网络上推断出谁在和谁交流。如果他人知道了你的流量的来源和目的地，他们就可以跟踪你的行为和兴趣。这会影响你的钱包，举个例子，一个电子商务网站也许会根据你来自的国家和机构制定不同的价格。泄露你的身份和地点甚至会威胁你的工作和人身安全。举个例子，如果你在国外连接到你的雇主的电脑去接收和发送邮件，你就会在不经意间向任何监视网络的人泄露了你的国籍和职业关系，即使连接是加密的也没有用。<br /><br />流量分析的原理是什么？互联网上的数据包由两部分组成：有效载荷（payload）和用来路由的报头（header）。有效载荷是正在发送的数据，它可能是一封邮件、一张网页或是一个声音文件。即便你加密通信中的有效载荷，流量分析一样能够揭露许多你在做的事，甚至有可能揭露你在说些什么。那是因为它所分析的是报头，报头记录着来源、目的地、数据大小、时间等等信息。<br /><br />对于一个隐私意识强的人，一个基本问题是：你的通信的对方可以从报头得到有用的东西，授权的中间媒介（比如 ISP）——有时甚至未授权的中间媒介——也可以这么做。一个非常简单的流量分析的形式是：藏身于网络上发送者和接收者之间的某个地方，偷看报头。<br /><br />但是，更强大的流量分析同样存在。一些攻击者（attackers）暗中监视互联网的多个部分，使用高级的统计技术追踪许多不同的组织和个人的通信模式。加密并不能抵御这些攻击者，因为加密隐藏的仅仅是流量的内容而不是报头。<br />解决办法：一个分布式的、匿名的网络<br /><br />Tor 有助于降低简单的和高级的流量分析的风险，Tor 把你的流量分散到互联网上的多个地点，所以不存在单一的一点可以把你和你的目的地联系起来。这就好像用一条拐弯抹角的、难以辨认的路径甩掉跟踪你的人，然后定期擦掉你的脚印。在 Tor 网络上，来源和目的地不是用一条路径直接连接的，而是由一条通过数台中继的随机的路径覆盖原始路径，数据包在这条路径上传输，因此，不存在在任何单一点上的观察者能够知道数据从哪里来、到哪里去。<br />第一步<br /><br />用 Tor 创建一条私有路径时，用户的软件或客户端通过网络上的中继递增地建立一条由若干加密连接组成的电路（circuit）。电路一次扩展一跳（hop），电路上的中继仅仅知道它从哪一个中继接收数据以及向哪一个中继发送数据。没有一台单独的中继会知道数据包的完整路径。客户端为电路上的每一跳分配独立的加密密钥以保证连接数据通过时不被跟踪。<br />第二步<br /><br />一旦一条电路建立完成，多种类型的数据可以进行交换，不同种类的软件应用程序也可以在 Tor 网络上部署。因为每一台中继最多只能知道电路中的一跳，窃听者（eavesdropper）或者被入侵的中继（compromised relay）都无法通过流量分析把连接的来源和目的地联系起来。 Tor 仅作用于 TCP 数据流，任何支持 SOCKS 的应用程序都可以使用它。<br /><br />出于有效性，Tor 为大约在相同的十分钟内发生的连接分配同一电路。以后的请求被分配不同的电路，这样他人就不能把你早先的行为和新的行为联系起来。<br />第三步<br />隐匿服务<br /><br />Tor 同样使得用户能够向外界提供各类服务并且隐藏自己的位置，比如 Web 发布和及时通讯。其他 Tor 用户使用 Tor 的“聚合点（rendezvous points）”连接到这些隐匿服务，互相都不知道对方的网络标识。 Tor 用户能够使用这个隐匿服务功能建立网站，人们在网站上发布资料而不用担心遭到审查。没人能够确认到底是谁在运行网站，网站的运行者也不知道到底是谁发布了资料。了解更多有关配置隐匿服务的信息以及隐匿服务协议的工作原理。<br />保持匿名<br /><br />Tor 不能解决所有匿名问题。它所关注的仅仅是保护数据的传输。如果你不想让你所访问的网站知道你的身份信息，你需要使用支持特定协议的软件。比如，浏览 Web 时你可以使用 Privoxy 之类的 Web 代理软件阻止 cookies，隐藏浏览器的类型。<br /><br />同样，保护你的匿名要学得聪明些。不要在 Web 表单里输入你的名字和其他会泄露你身份的信息。需要提醒的是，和其他速度快到可以进行 Web 浏览的匿名网络一样， Tor 对于端到端的计时攻击（timing attacks）不提供保护：如果攻击者知道出自你电脑的流量，也知道到达你所选择的目的地的流量，他就可以使用统计分析发现属于同一电路的那部分。<br />Tor 的未来<br /><br />今天，在互联网上提供一个可用的匿名网络是一项持续的挑战。我们需要满足用户需求的软件。我们也需要网络以一种支持尽可能多的用户的方式在线运行。安全和可用性并非不可协调：随着 Tor 的可用性的增加，它会吸引更多的用户，用户的增加提高了每次通信的来源与目的地的可能性，而这增强了每个人的安全。我们在进步，但我们需要你的帮助。请考虑运行中继或者 志愿作一名开发者。<br /><br />法律、政策和技术的当前趋势以前所未有的程度威胁匿名，破坏着我们在线言论与阅读的自由。这些趋势也使得个人、组织、公司、政府间的通信更易分析，削弱了国家安全和关键基础设施。每一个新的用户、每一台新的中继都会增加网络的多样性， Tor 由此更能帮助你把安全和隐私的控制权重新掌握在自己手中。 <br /></div><br />有了概念之后， 看看这篇：<br /><a href="http://www.linuxgem.org/tip/use-tor-and-foxproxy-across-the-gfw.html" target="_blank">http://www.linuxgem.org/tip/use-tor-and-foxproxy-across-the-gfw.html</a><br />简单点说，通过Tor可以访问平时访问不了的优秀网站。<br /><br />OK，怎么做呢？（注意，以下试验都是Windowsxp sp2环境）<br />其实蛮简单的，只要找一个Tor的安装包下载下来，先安装，直接运行任何设置都不要的，windows下应该会看到一个命令模式窗口，提示已经正常运行于9050端口。在firefox里面设置代理为socks5， 地址是127.0.0.1, 端口=9050。好了，赶快打开<a href="http://zh.wikipedia.org/w/index.php?title=%E9%A6%96%E9%A1%B5&variant=zh-cn" target="_blank">http://zh.wikipedia.org/w/index.php?title=%E9%A6%96%E9%A1%B5&variant=zh-cn</a> ，能够访问了吧，只是很慢（没办法了，忍忍吧）<br />这时，你已经可以访问Tor的主页了，就是上面贴出来的<a href="http://www.torproject.org" target="_blank">http://www.torproject.org</a><br />细心的你，应该会发现命令窗口里面有一个提示：<br /><div class="quote_title">引用</div><div class="quote_div">Your application (using socks5 on port %d) is giving Tor only an IP address.<br />Applications that do DNS resolves themselves may leak information. Consider<br />using Socks4A (e.g. via privoxy or socat) instead.<br /></div><br />大致的意思是使用socks5的应用程序给了Tor一个ip地址， dns会暴露您的请求信息，建议更换Socks4a（我也不懂这是什么意思....）；好了，看看怎样解决这个问题。<br />还得安装一个Privoxy，对于Tor加Privoxy 的好处解释是：<br /><div class="quote_title">引用</div><div class="quote_div">使用 Privoxy 是必要的，因为当直接使用 SOCKS 代理时，浏览器会泄露你的 DNS 请求，这于你的匿名不利。同时，Privoxy 会删除 Web 请求中危险的报头并且阻挡 Doubleclick 之类的令人厌恶的广告站点。</div><br />赶快下载一个Privoxy，也是直接运行，没有设置。这时右下角的任务栏会有一个蓝色的图标，里面一个‘P’，表示运行成功了。到firefox里更改代理为http（不能是socks，我在这里卡了好久，一直无法连接）， 地址还是本机， 端口改成8118. 刷新一下页面，看看是不是提示没有了，没有了就表示Privoxy生效了， 仔细观察会发现那个蓝色的图标会闪一下，就是它发生作用了。或者用这个页面测试一下：<a href="http://config.privoxy.org/" target="_blank">http://config.privoxy.org/</a><br /><br />现在只有一个问题了，就是我不可能每次都要用到Tor的代理嘛， 毕竟很多网站并不需要代理啊，而且可能Tor代理速度不咋地。解决这个问题就似乎FoxyProxy了， 可以根据网站地址的规则自动切换代理，或者切换回非代理。<br /><br />最终四大天王都陆续登场了， 如果只是为了使用Tor以及Privoxy，并不是必须用firefox，以及那个插件FoxyProxy，只是firefox会方便很多，尤其是那个代理切换插件实在有用。<br />--------------------------------------------------------------------------------------------<br />后话， 今天突然发现http://zh.wikipedia.org 用Tor访问被限制了，不能注册，也不能搜索，郁闷。看来只好自己找代理了。
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/206516#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 21 Jun 2008 00:20:45 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/206516</link>
        <guid>http://spiritfrog.javaeye.com/blog/206516</guid>
      </item>
      <item>
        <title>使用代理访问外国网站</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/206157" style="color:red;">http://spiritfrog.javaeye.com/blog/206157</a>&nbsp;
          发表时间: 2008年06月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          昨天访问oracle官方网站， 感觉速度极慢， 经常性就是个白板load半天还是白板。<br />公司是电信主干网络，国内网站访问很快，访问国外网站是要慢一点， 以前就知道sourceforge慢，这次碰到个更慢的，有些受不了了。心想要加个代理访问外国网站是不是会快些，找了两个提供代理列表的网站：<br /><a href="http://proxy.cemsg.com/" target="_blank">http://proxy.cemsg.com/</a><br /><a href="http://www.proxycn.com/" target="_blank">http://www.proxycn.com/</a><br />随便从里面选了一个美国的http代理，这里需要选择不需要验证身份的：<br />207.232.27.12 		美国	<br />之后需要设置浏览器的代理。<br />如果想简单一点，可以使用web proxy，连浏览器的设置都可以省了。<br /><a href=" http://server.cemsg.com/" target="_blank"> http://server.cemsg.com/</a><br />但经过实测好像可靠性不高， 还是无法访问......<br /><br />还是采用浏览器设置代理的方式罢，为了能方便启用代理，  我给firefox安装了个proxy switch的插件quick proxy， 同时比较用代理和不用代理访问oracle网站， 结果用了代理快了许多， 心里乐呵呵的。<br /><br />后来又想如何能够切换代理和非代理访问不同的网站， 比如国内的就用非代理的， 外国访问慢的就用代理， quick proxy插件显然不行。经过查找，发现另外一个firefox插件foxproxy能够实现这个功能，而且是支持最新的firefox3的。基本使用就是，先设置几组proxy，然后分别为它们设定whitelist，在whitelist列表中的就能够通过代理访问。这个whitelist的匹配规则支持模糊匹配和正则表达式， 我是一般喜欢用模糊了。
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/206157#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 20 Jun 2008 11:54:52 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/206157</link>
        <guid>http://spiritfrog.javaeye.com/blog/206157</guid>
      </item>
      <item>
        <title>ubuntu上试用sql developer</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/206031" style="color:red;">http://spiritfrog.javaeye.com/blog/206031</a>&nbsp;
          发表时间: 2008年06月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          windows下面oracle客户端ui程序有toad和pl/sql developer，到了linux下面突然发现全部没了。还好oracle官方有sql developer，同时支持多个系统平台，而且能支持mysql、mssql、sybase数据迁移，既然这么好还是官方的，没有不用的理由。<br />下载回来运行.sh，却发现总需要输入jdk的路径，很不爽，于是迅速看了下bash shell执行中是什么时候提示要输入jdk路径的，终于在安装目录下的ide/bin/launcher.sh中做个修改即可：<br /><pre name="code" class="python">
CheckJDK()
{
  # if ide home is not defined then try to define it using
  # the first found java command on the path
  if [ "X$APP_JAVA_HOME" = "X" ]
  then
    GetDefaultJDK #这里会检查JAVA_HOME环境变量，我正常设置了却获取不到
  fi

  # if java wasn't found on the path then ask the user for it
  if CheckJavaHome #上面检查不到defalut jdk，因此会进入if
  then
    local DOT_JDK_FILE_NAME=`GetDotJdkFileName`
    APP_JAVA_HOME="" #把这里修改成jdk的目录即可
    if [ -f "$HOME/$DOT_JDK_FILE_NAME" ]
    then
      APP_JAVA_HOME=`cat &lt; "$HOME/$DOT_JDK_FILE_NAME"`
    fi
    if [ "X$APP_JAVA_HOME" != "X" ]
    then
      if [ ! -d ${APP_JAVA_HOME} ]
      then
        APP_JAVA_HOME=""
      fi
        fi
    while [ "X$APP_JAVA_HOME" = "X" ]
    do
      echo "Type the full pathname of a J2SE installation (or Ctrl-C to quit), the path will be stored in ~/$DOT_JDK_FILE_NAME"
      read APP_JAVA_HOME
      if [ -f "${APP_JAVA_HOME}/bin/java" ]
      then
</pre><br />好了，可以正常进到ui界面了，第一感觉还是比较清爽的。
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/206031#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 20 Jun 2008 01:12:14 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/206031</link>
        <guid>http://spiritfrog.javaeye.com/blog/206031</guid>
      </item>
      <item>
        <title>免安装客户端连接oracle</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/205179" style="color:red;">http://spiritfrog.javaeye.com/blog/205179</a>&nbsp;
          发表时间: 2008年06月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          一直以来oracle最让我不满的就是那个client巨大无比， 如果能不安装client或者有精简、轻巧的client也连上oracle server就好了。<br />结果，还是找到了方法。<br />oracle官网就有精简的instant client，地址是<a href="http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html" target="_blank">http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html</a><br /> 只要下载那个basic的即可， 其他是可选的。下载下来解压到一个目录， 体积大约117m，然后将该目录加到windows的path环境中，就ok了。<br />我实际试验了一下， <br />主要是要设定三个环境变量：<br />path                                 path of instantclient<br />TNS_ADMIN                          path of tnsnames.ora<br />NLS_LANG                             SIMPLIFIED CHINESE_CHINA.ZHS16GBK  <br /><br />一开始nls_lang没有设定，总是报错nsl data access错误什么的，再有就是如果刚卸载了client，需要重启一下计算机。tnsnames.ora需要备份一下， copy到instant client的目录下，就可以将TNS_ADMIN 设置成path相同了。<br />这个时候用plsql developer已经能够连上server了， 不过对数据库实例的维护就只能手工编辑tnsnames.ora了，只是也比较简单了，copy再改改就行。<br /><br />linux上没有试过， 设置方法应该差不多，无非就是环境变量了， 不过path要换成LD_LIBRARY_PATH， 回去再试试看。<br /><br />另外还有一个更加轻量级的做法：<br /><a href="http://blog.csdn.net/xutong/archive/2008/04/15/2293857.aspx" target="_blank">http://blog.csdn.net/xutong/archive/2008/04/15/2293857.aspx</a><br />可惜没看到有人把文件包共享出来，自己去找那些文件实在麻烦，懒得试了。
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/205179#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 18 Jun 2008 15:29:28 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/205179</link>
        <guid>http://spiritfrog.javaeye.com/blog/205179</guid>
      </item>
      <item>
        <title>java和数学是两回事</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/205089" style="color:red;">http://spiritfrog.javaeye.com/blog/205089</a>&nbsp;
          发表时间: 2008年06月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我本来就不是计算机专业出生， 数学更是学得不咋地， 偶然间看到j道的banq回到一个初学者问，也很受启发。这里是原帖：<br /><a href="http://www.jdon.com/jivejdon/thread/33691.html" target="_blank">http://www.jdon.com/jivejdon/thread/33691.html</a><br />答问内容是：<br /><br />>身边的几为C语言不错的同学告诉我努力学好&lt;离散数学>&lt;数据结构>,然而这两科却是J道极力排斥的<br /><br />不是排斥，而是软件和数学就是两个专业，两门学问，如果他们是一个学问，为什么我们用“软件”和“数学”两个词语来表达？这是一个很简单正常人都会得出的正常结论，为什么你要感到疑惑呢？在强大传统和权威面前你就失去了独立思考的自信？<br /><br />软件作为一个方法学载体，是一个平台，或者说是一个运输工具船 卡车，船和卡车都要载人和物，这个载的物可能是数学、企业管理等其他各种应用领域。<br /><br />现在我们已经将软件和应用领域区分开来了，那么谈谈软件怎样为应用领域如数学更好地服务呢？要让软件更好地为人民服务包括为数学服务，软件就必须做得更灵活，跟能符合应用领域的变化，软件不能因为自身越来越复杂，导致影响其为人民服务的质量，就象我们政府不能因为事情越来越多后，效率就越来越低，否则，就是你数学再好，你的目标再好，软件也不能实现，或者花了九牛二虎之力才能实现。<br /><br />学好数学不代表能做好软件啊，这是两码事啊，数学学好了，只代表你将来使用数学这个方法来表达客观需求能力强了，也就是数学建模能力强，不代表你软件灵活性强啊，这是两个不同方向。<br /><br />当然，不可否认，如果数据模型建立得有前瞻性，能够象爱因斯坦那样相对论公式，可以在几十年内一直正确，够前瞻够超前吧，可在我们实际应用中，有这样可以靠一两个公式就搞定一切的情况吗？<br /><br />软件是协助人们工作学习和生活的，软件就必须是一直吃苦耐劳听话的狗，如何做好一只狗和如何做爱因斯坦是两个不同方向。我们不能再用缘木求鱼的方式来学习软件了。
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/205089#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 18 Jun 2008 12:47:18 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/205089</link>
        <guid>http://spiritfrog.javaeye.com/blog/205089</guid>
      </item>
      <item>
        <title>powerdesigner的一些技巧（转）</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/205069" style="color:red;">http://spiritfrog.javaeye.com/blog/205069</a>&nbsp;
          发表时间: 2008年06月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          先说下自己的发现：<br />刚用powerdesigner有许多基本使用上的问题， 比如表和字段长度不能稍微长点， 导出时候报warning说表没有index或没有被引用。 后来发现这些都是check model在起作用， 调整一下check model对各种对象的check 规则就能解决以上问题， 比如关闭长度的检查，去掉对表index和引用的warn级别检查（warn只会提示一下， error的就会判定为check失败）。<br />关闭check model又是过于极端的做法， 不太合适， 自己检查还是不如机器检查来的快和全面。<br />---------------------------------------------------------------------------------------------------<br />以下是转载的<a href="http://sunxboy.javaeye.com/blog/174562" target="_blank">http://sunxboy.javaeye.com/blog/174562</a><br />sql语句中表名与字段名前的引号去除：<br /><br />打开cdm的情况下，进入Tools－Model Options－Naming Convention，把Name和Code的标签的Charcter case选项设置成Uppercase或者Lowercase，只要不是Mixed Case就行！<br />或者选择Database->Edit current database->Script->Sql->Format，有一项CaseSensitivityUsingQuote，它的 comment为“Determines if the case sensitivity for identifiers is managed using double quotes”，表示是否适用双引号来规定标识符的大小写，可以看到右边的values默认值为“YES”,改为“No”即可！<br />或者在打开pdm的情况下，进入Tools－Model Options－Naming Convention，把Name和Code的标签的Charcter case选项设置成Uppercase就可以！<br /><br />在修改name的时候，code的值将跟着变动，很不方便<br /><br />修改方法：PowerDesign中的选项菜单里修改，在[Tool]-->[General Options]->[Dialog]->[Operating modes]->[Name to Code mirroring],这里默认是让名称和代码同步，将前面的复选框去掉就行了。<br /><br /> <br /><br />由pdm生成建表脚本时，字段超过15字符就发生错误（oracle）<br /><br />  原因未知，解决办法是打开PDM后，会出现Database的菜单栏，进入Database － Edit Current DBMS －script－objects－column－maxlen，把value值调大(原为30)，比如改成60。出现表或者其它对象的长度也有这种错误的话都可以选择对应的objects照此种方法更改！<br />或者使用下面的这种方法：<br />     生成建表脚本时会弹出Database generation提示框：把options － check model的小勾给去掉，就是不进行检查（不推荐）！<br />    或者可以修改C:\Program Files\Sybase\PowerDesigner Trial 11\Resource Files\DBMS\oracl9i2.xdb文件<br />     修改好后，再cdm转为pdm时，选择“Copy the DBMS definition in model”把把这个资源文件拷贝到模型中。<br /><br /> <br /><br />由CDM生成PDM时，自动生成的外键的重命名<br /><br />PDM Generation Options->Detail->FK index names默认是%REFR%_FK，改为FK_%REFRCODE%，其中%REFRCODE%指的就是CDM中Relationship的code！另外自动生成的父字段的规则是PDM Generation Options->Detail->FK column name template中设置的，默认是%.3:PARENT%_%COLUMN%，可以改为Par%COLUMN%表示是父字段！<br /><br /> <br /><br /> 建立一个表后,为何检测出现Existence of index的警告<br />    A table should contain at least one column, one index, one key, and one reference.<br />可以不检查 Existence of index 这项，也就没有这个警告错误了！<br />意思是说没有给表建立索引，而一个表一般至少要有一个索引，这是一个警告，不用管也没有关系！<br /><br /> <br /><br />如何防止一对一的关系生成两个引用（外键）<br />要定义关系的支配方向，占支配地位的实体（有D标志）变为父表。<br />在cdm中双击一对一关系->Detail->Dominant role选择支配关系<br /><br /> <br /><br />修改报表模板中一些术语的定义<br />即文件：C:\Program Files\Sybase\PowerDesigner Trial 11\Resource Files\Report Languages\Chinese.xrl<br />Tools－Resources－Report Languages－选择Chinese－单击Properties或双击目标<br />修改某些对象的名称：Object Attributes\Physical Data Model\Column\<br />        ForeignKey：外键<br />        Mandatory：为空<br />        Primary：主键<br />        Table：表<br />用查找替换，把“表格”替换成“表”<br />修改显示的内容为别的：Values Mapping\Lists\Standard，添加TRUE的转化列为是，FALSE的转化列为空<br />另外Report－Title Page里可以设置标题信息<br /><br /> <br /><br />PowerDesigner11中批量根据对象的name生成comment的脚本<br /><br />'******************************************************************************<br />'* File:     name2comment.vbs<br />'* Purpose:  Database generation cannot use object names anymore<br />'            in version 7 and above.<br />'            It always uses the object codes.<br />'<br />'            In case the object codes are not aligned with your<br />'            object names in your model, this script will copy<br />'            the object Name onto the object comment for<br />'            the Tables and Columns.<br />'<br />'* Title:    把对象name拷入comment属性中<br />'* Version:  1.0<br />'* Author：<br />'* 执行方法：PD11 -- Open PDM -- Tools --  Execute Commands -- Run Script<br />'******************************************************************************<br /><br />Option Explicit<br />ValidationMode = True<br />InteractiveMode = im_Batch<br /><br />Dim mdl ' the current model<br /><br />' get the current active model<br />Set mdl = ActiveModel<br />If (mdl Is Nothing) Then<br />   MsgBox "There is no current Model"<br />ElseIf Not mdl.IsKindOf(PdPDM.cls_Model) Then<br />   MsgBox "The current model is not an Physical Data model."<br />Else<br />   ProcessFolder mdl<br />End If<br /><br />' This routine copy name into code for each table, each column and each view<br />' of the current folder<br />Private sub ProcessFolder(folder)<br />   Dim Tab 'running  table<br />   for each Tab in folder.tables<br />      if not tab.isShortcut then<br />         tab.comment = tab.name<br />         Dim col ' running column<br />         for each col in tab.columns<br />            col.comment= col.name<br />         next<br />      end if<br />   next<br /><br />   Dim view 'running view<br />   for each view in folder.Views<br />      if not view.isShortcut then<br />         view.comment = view.name<br />      end if<br />   next<br /><br />   ' go into the sub-packages<br />   Dim f ' running folder<br />   For Each f In folder.Packages<br />      if not f.IsShortcut then<br />         ProcessFolder f<br />      end if<br />   Next<br />end sub<br /><br /> <br /><br />PowerDesigner 生成SQL的Existence of refernce错误问题<br />现象：用PowerDesigner生成SQL语句时，提示Existence of refernce错误。<br />原因：该表没有与其他表的关联(如外键等），而PowerDesigner需要存在一个refernce才能生成SQL.<br />解决方法：<br />    在工具栏空白处右键打开Palette面板，选中Link/Extended Dependency 按钮，然后在提示出错的表上添加到自己的Dependency。<br />    重新生成SQL,你将发现刚才提示的错误没有了，问题解决。<br />  <br />利用PowerDesigner批量生成测试数据<br />主要解决方法:<br />A:在PowerDesigner 建表<br />B:然后给每一个表的字段建立相应的摘要文件<br />步骤如下:<br />Model->Test Data Profiles配置每一个字段摘要文件General:输入Name、Code、<br />选择Class(数字、字符、时间)类型<br />选择Generation Source： Automatic、List、ODBC、File Detail:配置字段相关信息<br />所有字段摘要文件配置完成后双击该表->选择字段->Detail->选择Test Data Parameters 摘要文件如果字段值与其它字段有关系在: Computed Expression 中输入计算列--生成测试数据:<br />DataBase->Generation Test Data-><br />选择:Genration 类型(Sript、ODBC)<br />     Selection(选择要生成的表)<br />     Test Data Genration(Default number of rows 生成记录行数)
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/205069#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 18 Jun 2008 11:36:39 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/205069</link>
        <guid>http://spiritfrog.javaeye.com/blog/205069</guid>
      </item>
      <item>
        <title>firefox3还是迟到了</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/204941" style="color:red;">http://spiritfrog.javaeye.com/blog/204941</a>&nbsp;
          发表时间: 2008年06月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          firefox3正式版宣称是6月17日发布， 但等到晚上11点了， 一看官方主页还是没动静。<br />估计是要跳票了，不过也有传闻说这个17号的发布日期是假的。不管怎样， 我都很期盼ff3早日到来。<br />一直很喜欢firefox和opera两款浏览器，现在windows和linux上两者我都是必装的。firefox似乎在linux上的表现比windows要好的多，而firefox3又更快了，因此充满了期待。<br />相比之下， opera9.5的到来还是比预料的早。opera9.5发布后， 试用了下， 新的皮肤倒是还有些不习惯， 但是字体的设置简单了很多，只要设置normal font和monospace font就可以了， 不用再去设什么user.css。 可惜对flash的播放还是有老问题：加载慢和播放容易卡机。<br />虽然opera启动极快， 体积轻巧， 但firefox并不存在opera上这种明显的问题，而且速度上ff3也能跟opera9.5差不多， 再加上firefox上有对做开发很方便的插件， 对firefox的喜爱就更多一点了。<br />-------------------------------------------------------------------------------------------------------<br />后来官方的解释是， 因为访问量太大， 被迫延迟了两个小时发布， 加上时差应该是北京时间的18日2时。
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/204941#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 17 Jun 2008 23:27:01 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/204941</link>
        <guid>http://spiritfrog.javaeye.com/blog/204941</guid>
      </item>
      <item>
        <title>powerdesigner 几个基本问题</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/204731" style="color:red;">http://spiritfrog.javaeye.com/blog/204731</a>&nbsp;
          发表时间: 2008年06月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          突然要用powerdesigner做数据库表设计， 最后发现导出sql脚本就出现了问题， 首先是字段都带上了双引号， 而且还总是报错字段名过长。<br />另外还发现column属性，Code才是最终产生的Table Name ，而Name就有点像是描述了。<br />对于上面问题找了找，还是在坛子里面发现有个哥们贴出了解答方法：<br /><a href="http://www.javaeye.com/topic/120979" target="_blank">http://www.javaeye.com/topic/120979</a><br />感谢一下，具体内容如下：<br />在 Database里选择你的数据库然后在 DBMS里面选择(注意看清楚PDM的引用模式是哪个数据库)<br />Script->Sql->Format->EnableOwnerPrefix value=Yes;<br /><br />Script->Sql->Format->CaseSensitivityUsingQuote=No;<br /><br />这时再导出 表的名称就正常了<br /><br /> PowerDesigner9 移植到 PowerDesigner12 的问题：<br /><br />默认长度的问题，我在PowerDesigner9导出没问题的数据库脚本拿到PowerDesigner12导出出现如下问题：<br /><br />Column constraint name maximum length is limited to 15 characters<br /><br />在使用PD12时出现诸如以下错误：<br /><br />Reference constraint name maximum length is limited to 7 characters<br />Key constraint name maximum length is limited to 7 characters<br />Table code maximum length<br />Column code maximum length<br />……<br /><br />导致生成建表SQL时通不过，细究原因原来是默认设置的问题，改下就可以了：）<br /><br />调整以下参数：<br />Database=>Edit current DBMS   数据库类型::Script\Objects\MaxConstLen value=>255<br />Database=>Edit current DBMS   数据库类型::Script\Objects\Table\Maxlen value=>255<br />Database=>Edit current DBMS   数据库类型::Script\Objects\Column\Maxlen value=>255<br /><br /> <br /><br />再说说如何在 PowerDesigner12里创建带导出分区的脚本<br /><br />默认情况下分区设置是隐藏的 所以要选种该表 然后再点左下脚的More>><br /><br />选择Physical Options 这个选项 这里可以添加表空间和索引空间 我习惯直接设置分区SQL语句 这样避免了很多垃圾语句生成<br /><br />选择 SQL 然后创建分区<br /><br />  partition by list<br /> ( data_part  )<br /> ( partition Pd00<br />    values ( '0'  ) )<br /><br />就OK了 去Partitions选项里可以看到这一列分区效果<br /><br />设置索引默认空间：<br /><br />选择KEY选项或者Index选项 直接双击该索引 然后设置Physical Options<br /><br />直接输入SQL创建默认索引指向表空间   using index  tablespace index_emcspace<br /><br />PowerDesigner功能强大 完全可以维护大部分的数据库建模<br /><br />现在在Oracle数据库维护有些问题 创建数据库的Package 或者 Types 、Directories、Jobs等 没办法维护进去。<br /><br />------------------------------------------------------------------------------------------------------<br />因为我下载的pd11是试用版，功能受限， index导出总是报错， 换用了pd12的破解版， 没有问题了。<br />而且改object最大长度设置，只要设定一个全局的，方便一些：<br />PGSQL73::Script\Objects\MaxConstLen<br />value=>255<br />PGSQL73::Script\Objects\Table\Maxlen<br />value=>255<br /><br />另外发现pd12也没有表长度长一点就报错的问题， 不用像前面那样改长度了。
          <br/>
          <span style="color:red;">
            <a href="http://spiritfrog.javaeye.com/blog/204731#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 17 Jun 2008 17:02:35 +0800</pubDate>
        <link>http://spiritfrog.javaeye.com/blog/204731</link>
        <guid>http://spiritfrog.javaeye.com/blog/204731</guid>
      </item>
      <item>
        <title>jvm对String常量加法的优化</title>
        <author>spiritfrog</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://spiritfrog.javaeye.com">spiritfrog</a>&nbsp;
          链接：<a href="http://spiritfrog.javaeye.com/blog/202235" style="color:red;">http://spiritfrog.javaeye.com/blog/202235</a>&nbsp;
          发表时间: 2008年06月11日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          今天一个同事问我一道题目<br /><pre name="code" class="java">
String a = "ab"; 
String b = "a" + "b"; 
System.out.println((a == b));这个的