上午在优快云上看了《迎接挑战:沃尔玛网站如何迁移到Java 1.5平台》http://news.youkuaiyun.com/news/newstopic/22/22233.shtml
碰巧又有个人在自己的blog里面宣称《多家权威机构、几十篇权威证据证明:Java比C++更快。如果反对,请举反证。 <script language="javascript" type="text/javascript"></script> 》http://blog.youkuaiyun.com/liigo/archive/2005/06/15/395223.aspx,里面提到:根据SUN的数据显示,j2se1.5在各种单项性能上平均比j2se1.4.2高出10%到30%,而在复杂程序的综合性能上则是j2se1.4的三倍左右,于是我也有了迁移的想法,说干就干!
到sun的网站下载了jdk5.0,
安装以后修改环境变量JAVA_HOME指向jdk5.0安装目录,
然后修改我的build.xml,把两处target="1.4"替换程target="1.5"
运行命令:ant compile,报错说jre/lib下的一个jar包是坏的…………
折腾半天也没办法解决,天哪,我的普通代码没有用jdk1.4的特殊功能呀,难道sun把jdk改得面目全非了?不太可能!
问老麻,他又是想都没想决一大堆原因,语气还非常肯定,总之就是简单的程序也可能不能兼容。
对于他的说法我表示了怀疑,然后去吃饭!
到了兵工,看见chen姐和tangjia在那里等面呢,哈哈,两个美女与我共进午餐,心情一下好了起来,迁移jdk1.5的事儿一下子抛到九霄云外了(虽然今天的拉面很难吃:)
回来以后冷静思考了一下,不可能是我的程序问题,决定重装JDK(因为刚才装的时候为了节省空间值选了一部分组建),这次完全按照默认选项来,结果还真的运行正常了,跑同一个测试还真比jdk1.4.2快了几十秒。看来sun的安装程序做的有问题!
只是编译时有提示信息:
注意: 某些输入文件使用了未经检查或不安全的操作。
注意: 要了解详细信息,请使用 -Xlint:unchecked 重新编译
虽然不影响运行,但是看着不爽。根据编译器的提示信息,应该给javac架一个参数-Xlint:unchecked就行了,可是在build.xml里怎么加呢,又折腾了半天,最后终以试通了
<target name="compile" description="Compile main source tree java files">
<mkdir dir="${build.dir}/classes"/>
<javac destdir="${build.dir}/classes" target="1.5" srcdir="${src.dir}" debug="true"
deprecation="false" optimize="false" failοnerrοr="true">
<compilerarg value="-Xlint:unchecked"/>
<sourcepath path="${src.dir}"/>
<classpath refid="classpath"/>
</javac>
<!-- compile tests -->
<mkdir dir="${test.dir}/classes"/>
<javac destdir="${test.dir}/classes" target="1.5" debug="true"
deprecation="false" optimize="false" failοnerrοr="true">
<src path="${test.src}"/>
<classpath>
<path refid="classpath"/>
<path location="${build.dir}/classes"/>
</classpath>
</javac>
<!-- Copy hibernate mapping files to ${build.dir}/classes -->
<copy todir="${build.dir}/classes">
<fileset dir="${src.dir}" includes="**/*.hbm.xml"/>
</copy>
</target>
原来这样加参数,看来明天要对ant彻底的研究一下了,哈哈