﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-樂於JAVA</title><link>http://www.blogjava.net/HappyJava/</link><description>幸福人生(J2EE)</description><language>zh-cn</language><lastBuildDate>Fri, 01 May 2026 11:19:35 GMT</lastBuildDate><pubDate>Fri, 01 May 2026 11:19:35 GMT</pubDate><ttl>60</ttl><item><title>Struts2利用stream直接输出Excel</title><link>http://www.blogjava.net/HappyJava/articles/229873.html</link><dc:creator>李建軍</dc:creator><author>李建軍</author><pubDate>Fri, 19 Sep 2008 01:57:00 GMT</pubDate><guid>http://www.blogjava.net/HappyJava/articles/229873.html</guid><wfw:comment>http://www.blogjava.net/HappyJava/comments/229873.html</wfw:comment><comments>http://www.blogjava.net/HappyJava/articles/229873.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/HappyJava/comments/commentRss/229873.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/HappyJava/services/trackbacks/229873.html</trackback:ping><description><![CDATA[在利用网页展示查询结果时，经常会遇到要求导出成Excel的需求。采用这种方法可以定制输出的格式和内容（还不支持合并单元格和公式），生成真正的Excel格式（不是csv）的Excel。<br />
一、struts.xml<br />
&lt;?&nbsp;xml version="1.0" encoding="UTF-8"&nbsp;?&gt;<br />
&lt;!DOCTYPE struts PUBLIC<br />
&nbsp;&nbsp;&nbsp; "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"<br />
&nbsp;&nbsp;&nbsp; "http://struts.apache.org/dtds/struts-2.0.dtd"&gt;<br />
&nbsp;&nbsp; <br />
&lt;struts&gt;
<p>&nbsp;&nbsp;&nbsp; &lt;constant name="struts.i18n.encoding" value="UTF-8"/&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;package name="demo" extends="struts-default"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action name="excel" method="execute" class="demo.ExcelAction"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;result name="excel" type="stream"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="contentType"&gt;application/vnd.ms-excel&lt;/param&gt;&nbsp;&nbsp;&nbsp; &lt;!-- 注意这里的ContentType --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="inputName"&gt;excelStream&lt;/param&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- 这里需要和Action里的变量名一致 --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="contentDisposition"&gt;filename="standard.xls"&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;param name="bufferSize"&gt;1024&lt;/param&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/result&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/action&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/package&gt;<br />
&lt;/struts&gt;</p>
<p>二、Struts2的 Action</p>
<p>package demo;<br />
public class ExcelAction {<br />
&nbsp;&nbsp;&nbsp; private InputStream excelStream; // 需要生成getter和setter</p>
<p>&nbsp;&nbsp;&nbsp; public String execute() throws Exception {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StringBuffer excelBuf = new StringBuffer();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excelBuf.append("BookName").append("\t").append("Year").append("\t").append("author").append("\n");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excelBuf.append("Thinking in Java").append("\t").append("2001").append("\t").append("Eckel").append("\n");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excelBuf.append("Spring in action").append("\t").append("2005").append("\t").append("Rod").append("\n");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String excelString = excelBuf.toString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logger.debug("result excel String: " + excelString);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; excelStream = new ByteArrayInputStream(excelString.getBytes(), 0, excelString.length());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "excel";<br />
&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; // getter and setter<br />
&nbsp;&nbsp;&nbsp; ...<br />
}</p>
<p>三、Jsp页面</p>
<p>&lt;%@ taglib prefix="s" uri="/struts-tags"%&gt;<br />
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<br />
&lt;html&gt;<br />
&nbsp;&lt;head&gt;<br />
&nbsp; &lt;s:head /&gt;<br />
&nbsp;&lt;/head&gt;</p>
<p>&nbsp;&lt;body&gt;</p>
<p>&nbsp;&nbsp;&nbsp; &lt;s:form action="" method="post"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;s:submit key="button.submit"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/s:form&gt;<br />
&nbsp;&lt;/body&gt;<br />
&lt;/html&gt;</p>
<img src ="http://www.blogjava.net/HappyJava/aggbug/229873.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/HappyJava/" target="_blank">李建軍</a> 2008-09-19 09:57 <a href="http://www.blogjava.net/HappyJava/articles/229873.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp中对目录的操作</title><link>http://www.blogjava.net/HappyJava/articles/229867.html</link><dc:creator>李建軍</dc:creator><author>李建軍</author><pubDate>Fri, 19 Sep 2008 01:49:00 GMT</pubDate><guid>http://www.blogjava.net/HappyJava/articles/229867.html</guid><wfw:comment>http://www.blogjava.net/HappyJava/comments/229867.html</wfw:comment><comments>http://www.blogjava.net/HappyJava/articles/229867.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/HappyJava/comments/commentRss/229867.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/HappyJava/services/trackbacks/229867.html</trackback:ping><description><![CDATA[<p>&lt;%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&gt;<br />
&lt;%@ page import="java.io.*" %&gt;<br />
&lt;%<br />
&nbsp;String path = request.getContextPath();<br />
&nbsp;String basePath = request.getScheme() + "://"<br />
&nbsp;&nbsp;&nbsp;+ request.getServerName() + ":" + request.getServerPort()<br />
&nbsp;&nbsp;&nbsp;+ path + "/";<br />
%&gt;</p>
<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<br />
&lt;html&gt;<br />
&nbsp; &lt;head&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;base href="&lt;%=basePath%&gt;"&gt;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;My JSP 'createD.jsp' starting page&lt;/title&gt;<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&lt;meta http-equiv="pragma" content="no-cache"&gt;<br />
&nbsp;&lt;meta http-equiv="cache-control" content="no-cache"&gt;<br />
&nbsp;&lt;meta http-equiv="expires" content="0"&gt;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&lt;meta http-equiv="keywords" content="keyword1,keyword2,keyword3"&gt;<br />
&nbsp;&lt;meta http-equiv="description" content="This is my page"&gt;<br />
&nbsp;&lt;!--<br />
&nbsp;&lt;link rel="stylesheet" type="text/css" href="styles.css"&gt;<br />
&nbsp;--&gt;</p>
<p>&nbsp; &lt;/head&gt;<br />
&nbsp; <br />
&nbsp; &lt;body&gt;<br />
&nbsp;&nbsp;&lt;%<br />
&nbsp;&nbsp;&nbsp;String pathStr = request.getRealPath("/upload");<br />
&nbsp;&nbsp;&nbsp;pathStr = pathStr + "\\Sub";//将要建立的目录路径 <br />
&nbsp;&nbsp;&nbsp;out.println(pathStr);<br />
&nbsp;&nbsp;&nbsp;//建立代表Sub目录的File对象，并得到它的一个引用 <br />
&nbsp;&nbsp;&nbsp;File d = new File(pathStr);<br />
&nbsp;&nbsp;&nbsp;if (d.exists()) {//检查Sub目录是否存在 <br />
&nbsp;&nbsp;&nbsp;&nbsp;d.delete();<br />
&nbsp;&nbsp;&nbsp;&nbsp;out.println("Sub目录存在，已删除");<br />
&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;d.mkdir();//建立Sub目录 <br />
&nbsp;&nbsp;&nbsp;&nbsp;out.println("Sub目录不存在，已建立");<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;%&gt;</p>
<p>&nbsp;&lt;/body&gt;<br />
&lt;/html&gt;<br />
</p>
<img src ="http://www.blogjava.net/HappyJava/aggbug/229867.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/HappyJava/" target="_blank">李建軍</a> 2008-09-19 09:49 <a href="http://www.blogjava.net/HappyJava/articles/229867.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp 中对文件的操作</title><link>http://www.blogjava.net/HappyJava/articles/229865.html</link><dc:creator>李建軍</dc:creator><author>李建軍</author><pubDate>Fri, 19 Sep 2008 01:47:00 GMT</pubDate><guid>http://www.blogjava.net/HappyJava/articles/229865.html</guid><wfw:comment>http://www.blogjava.net/HappyJava/comments/229865.html</wfw:comment><comments>http://www.blogjava.net/HappyJava/articles/229865.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/HappyJava/comments/commentRss/229865.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/HappyJava/services/trackbacks/229865.html</trackback:ping><description><![CDATA[首先取得当前的磁盘路径，指定要建立的文件的路径，再进行检查，假如文件不存在，则建立这个文件，假如文件存在，则删除这个文件。<br />
　　<br />
　　CreateDelete.jsp<br />
　　<br />
　　&lt;%@ page contentType="text/Html; charset=GB2312"%&gt;<br />
　　&lt;%@ page import="Java.io.*" %&gt;<br />
　　&lt;%@ page language="java" %&gt;<br />
　　&lt;HTML&gt;<br />
　　&lt;HEAD&gt;<br />
　　&lt;TITLE&gt;文件的建立与删除&lt;/TITLE&gt;<br />
　　&lt;/HEAD&gt;<br />
　　&lt;BODY&gt;<br />
　　&lt;CENTER&gt;<br />
　　&lt;FONT SIZE = 5 COLOR = blue&gt;文件的建立与删除&lt;/FONT&gt;<br />
　　&lt;/CENTER&gt;<br />
　　&lt;BR&gt;<br />
　　&lt;HR&gt;<br />
　　&lt;BR&gt;<br />
　　&lt;%<br />
　　//建立代表目前目录位置中File.txt档的File变量, 并由fileName变量变数引用<br />
　　String path = request.getRealPath("/jsphosting/wenjian");<br />
　　File fileName = new File(path, "File.txt");<br />
　　//检查File.txt是否存在<br />
　　if(fileName.exists())<br />
　　{<br />
　　//删除File.txt档<br />
　　fileName.delete();<br />
　　//输出目前所在的目录路径<br />
　　out.println(path + "\File.txt");<br />
　　%&gt;<br />
　　&lt;FONT SIZE = 4 COLOR = red&gt;存在&lt;/FONT&gt;, 已完成<br />
　　&lt;FONT SIZE = 4 COLOR = red&gt;删除&lt;/FONT&gt;<br />
　　&lt;%<br />
　　}<br />
　　else<br />
　　{<br />
　　//在目前的目录下建立一个名为File.txt的文字档<br />
　　fileName.createNewFile();<br />
　　//输出目前所在的目录路径<br />
　　out.println(path + "\File.txt");<br />
　　%&gt;<br />
　　&lt;FONT SIZE = 4 COLOR = red&gt;不存在&lt;/FONT&gt;, 已完成<br />
　　&lt;FONT SIZE = 4 COLOR = red&gt;建立&lt;/FONT&gt;<br />
　　&lt;%<br />
　　}<br />
　　%&gt;<br />
　　&lt;/BODY&gt;<br />
　　&lt;/HTML&gt;<br />
　　<br />
　　显示目录中的文件<br />
　　<br />
　　首先建立要显示的目录的FILE对象，然后调用LISTFILES方法，该方法返回一个FILE对象数组，显示数组中的所有元素即可。<br />
　　<br />
　　ListFile.jsp<br />
　　<br />
　　&lt;%@ page contentType="text/html; charset=GB2312"%&gt;<br />
　　&lt;%@ page language="java" %&gt;<br />
　　&lt;%@ page import="java.io.*" %&gt;<br />
　　&lt;HTML&gt;<br />
　　&lt;HEAD&gt;<br />
　　&lt;TITLE&gt;取得目录中的文件&lt;/TITLE&gt;<br />
　　&lt;/HEAD&gt;<br />
　　&lt;BODY&gt;<br />
　　&lt;CENTER&gt;<br />
　　&lt;FONT SIZE = 5 COLOR = blue&gt;取得目录中的文件&lt;/FONT&gt;<br />
　　&lt;/CENTER&gt;<br />
　　&lt;BR&gt;<br />
　　&lt;HR&gt;<br />
　　&lt;BR&gt;<br />
　　&lt;%<br />
　　//取得目前目录的磁盘目录<br />
　　String path = request.getRealPath("/jsphosting/wenjian");<br />
　　//建立代表目前目录位置的d变量<br />
　　File d = new File(path);<br />
　　//取得代表目录中所有文件<br />
　　File list[] = d.listFiles();<br />
　　%&gt;<br />
　　在&lt;Font color = red&gt;&lt;%= path%&gt;&lt;/Font&gt;目录下的文件有（每个文件有其相应的功能）&lt;BR&gt;<br />
　　&lt;Font color = blue&gt;<br />
　　&lt;ul&gt;<br />
　　&lt;%<br />
　　for(int i=0; i &lt; list.length; i++)<br />
　　{<br />
　　%&gt;<br />
　　&lt;li&gt;&lt;%= list[i].getName() %&gt;&lt;BR&gt;<br />
　　&lt;%<br />
　　}<br />
　　%&gt;<br />
　　&lt;/ul&gt;<br />
　　&lt;/Font&gt;<br />
　　&lt;/BODY&gt;<br />
　　&lt;/HTML&gt;<br />
　　<br />
　　读取文件中的字符<br />
　　<br />
　　直接调用FILEREADER对象的READ（）方法读取所要显示的字符<br />
　　<br />
　　ReadAll.jsp<br />
　　<br />
　　&lt;%@ page contentType="text/html; charset=GB2312" %&gt;<br />
　　&lt;%@ page language="java" %&gt;<br />
　　&lt;%@ page import="java.io.*" %&gt;<br />
　　&lt;HTML&gt;<br />
　　&lt;HEAD&gt;<br />
　　&lt;TITLE&gt;读取文件内容&lt;/TITLE&gt;<br />
　　&lt;/HEAD&gt;<br />
　　&lt;BODY&gt;<br />
　　&lt;CENTER&gt;<br />
　　&lt;FONT SIZE = 5 COLOR = blue&gt;读取文件内容&lt;/FONT&gt;<br />
　　&lt;/CENTER&gt;<br />
　　&lt;BR&gt;<br />
　　&lt;HR&gt;<br />
　　&lt;BR&gt;<br />
　　&lt;%<br />
　　String path = request.getRealPath("/jsphosting/wenjian");<br />
　　//取得目前目录在伺服端的实际位置<br />
　　FileReader fr = new FileReader(path + "\File.txt");<br />
　　//建立FileReader变量,并设定由fr变量变数引用<br />
　　int c = fr.read();<br />
　　//从文件中读取一个字节<br />
　　while(c != -1)<br />
　　//判定是否已读到文件的结尾<br />
　　{<br />
　　out.print((char)c);<br />
　　//输出读取到的数据<br />
　　c = fr.read();<br />
　　//从文件中读取数据<br />
　　if(c == 13)<br />
　　//判定是否为断行字节<br />
　　{<br />
　　out.print("&lt;BR&gt;");<br />
　　//输出分行标签<br />
　　fr.skip(1);<br />
　　//略过一个字节<br />
　　c = fr.read();<br />
　　//读取一个字节<br />
　　}<br />
　　}<br />
　　//关闭文件<br />
　　fr.close();<br />
　　%&gt;<br />
　　&lt;/BODY&gt;<br />
　　&lt;/HTML&gt;<br />
　　<br />
　　将数据写入文件<br />
　　<br />
　　通过调用FILEWRITER对象的WRITE（）方法向文件中写入数据<br />
　　<br />
　　Write.jsp<br />
　　<br />
　　&lt;%@ page contentType="text/html; charset=GB2312"%&gt;<br />
　　&lt;%@ page language="java" %&gt;<br />
　　&lt;%@ page import="java.io.*" %&gt;<br />
　　&lt;HTML&gt;<br />
　　&lt;HEAD&gt;<br />
　　&lt;TITLE&gt;将数据写入文件&lt;/TITLE&gt;<br />
　　&lt;/HEAD&gt;<br />
　　&lt;BODY&gt;<br />
　　&lt;CENTER&gt;<br />
　　&lt;FONT SIZE = 5 COLOR = blue&gt;将数据写入文件&lt;/FONT&gt;<br />
　　&lt;/CENTER&gt;<br />
　　&lt;BR&gt;<br />
　　&lt;HR&gt;<br />
　　&lt;BR&gt;<br />
　　&lt;%<br />
　　String path = request.getRealPath("/jsphosting/wenjian");<br />
　　//取得目前目录在伺服端的实际位置<br />
　　FileWriter fw = new FileWriter(path + "\File.txt");<br />
　　//建立FileWrite对象,并设定由fw对象变量引用<br />
　　//将字串写入文件<br />
　　fw.write("大家好!");<br />
　　fw.write("祝大家学习jsp愉快！");<br />
　　fw.write("希望大家能够深入了解jsp技术！");<br />
　　fw.close();<br />
　　//关闭文件<br />
　　%&gt;<br />
　　&lt;P&gt;写入文件内容为&lt;/P&gt;<br />
　　&lt;FONT SIZE = 4 COLOR = red&gt;<br />
　　&lt;%<br />
　　FileReader fr = new FileReader(path + "\File.txt");<br />
　　//建立FileReader对象,并设定由fr对象变量引用<br />
　　BufferedReader br = new BufferedReader(fr);<br />
　　//建立BufferedReader对象,并设定由br对象变量引用<br />
　　String Line = br.readLine();<br />
　　//读取一行数据<br />
　　out.println(Line + "&lt;BR&gt;");<br />
　　//输出读取得的数据<br />
　　br.close();<br />
　　//关闭BufferedReader对象<br />
　　fr.close();<br />
　　//关闭文件<br />
　　%&gt;<br />
　　&lt;/FONT&gt;<br />
　　&lt;/BODY&gt;<br />
　　&lt;/HTML&gt;<br />
资料引用:http://www.knowsky.com/367146.html
<img src ="http://www.blogjava.net/HappyJava/aggbug/229865.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/HappyJava/" target="_blank">李建軍</a> 2008-09-19 09:47 <a href="http://www.blogjava.net/HappyJava/articles/229865.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关闭myeclipse的Quick Update自动更新功能 </title><link>http://www.blogjava.net/HappyJava/articles/226856.html</link><dc:creator>李建軍</dc:creator><author>李建軍</author><pubDate>Thu, 04 Sep 2008 02:26:00 GMT</pubDate><guid>http://www.blogjava.net/HappyJava/articles/226856.html</guid><wfw:comment>http://www.blogjava.net/HappyJava/comments/226856.html</wfw:comment><comments>http://www.blogjava.net/HappyJava/articles/226856.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/HappyJava/comments/commentRss/226856.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/HappyJava/services/trackbacks/226856.html</trackback:ping><description><![CDATA[<div class="clear">Windows &gt; Preferences &gt; MyEclipse &gt; Community Essentials, <br />
把选项 "Search for new features on startup"的前勾去掉即可. </div>
<img src ="http://www.blogjava.net/HappyJava/aggbug/226856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/HappyJava/" target="_blank">李建軍</a> 2008-09-04 10:26 <a href="http://www.blogjava.net/HappyJava/articles/226856.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse开发JSP页面假死问题解决办法 </title><link>http://www.blogjava.net/HappyJava/articles/226855.html</link><dc:creator>李建軍</dc:creator><author>李建軍</author><pubDate>Thu, 04 Sep 2008 02:25:00 GMT</pubDate><guid>http://www.blogjava.net/HappyJava/articles/226855.html</guid><wfw:comment>http://www.blogjava.net/HappyJava/comments/226855.html</wfw:comment><comments>http://www.blogjava.net/HappyJava/articles/226855.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/HappyJava/comments/commentRss/226855.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/HappyJava/services/trackbacks/226855.html</trackback:ping><description><![CDATA[<div class="postbody"><font face="Verdana">Eclipse3.2安装完MyEclipse 在开发jsp时，只要一打&#8220;.&#8221;号弹出提示后MyEclipse就死了，没有响应，最后只能整个关掉，重启一下。问题还是存在。<br />
<br />
<span style="color: red">解决办法：</span><br />
拔了网线就好了,具体什么原因正在查找.</font> <br />
要想连接网线可以使用还有一个办法就是修改一个打开的方式<br />
<br />
具体操作：<br />
<br />
在eclipse里选中jsp文件，右键，打开方式－&gt;会显示有MyEclipse JSP Editor&nbsp; 选择这项即可，如果选择 MyEclipse Visual JSP Designer 这项就会有前面说的问题了。 </div>
<h1 class="postTitle"><a class="postTitle2" id="AjaxHolder_ctl01_TitleUrl" href="http://www.cnblogs.com/jamin/archive/2008/06/09/java.html">关闭myeclipse的Quick Update自动更新功能</a> </h1>
<div class="clear"></div>
<div class="postBody">Windows &gt; Preferences &gt; MyEclipse &gt; Community Essentials, <br />
把选项 "Search for new features on startup"的前勾去掉即可. </div>
<img src ="http://www.blogjava.net/HappyJava/aggbug/226855.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/HappyJava/" target="_blank">李建軍</a> 2008-09-04 10:25 <a href="http://www.blogjava.net/HappyJava/articles/226855.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实现Eclipse自动提示功能</title><link>http://www.blogjava.net/HappyJava/articles/226849.html</link><dc:creator>李建軍</dc:creator><author>李建軍</author><pubDate>Thu, 04 Sep 2008 02:05:00 GMT</pubDate><guid>http://www.blogjava.net/HappyJava/articles/226849.html</guid><wfw:comment>http://www.blogjava.net/HappyJava/comments/226849.html</wfw:comment><comments>http://www.blogjava.net/HappyJava/articles/226849.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/HappyJava/comments/commentRss/226849.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/HappyJava/services/trackbacks/226849.html</trackback:ping><description><![CDATA[<div class="articleTitle">&nbsp;</div>
<div class="articleContent" id="articleBody">
<div>&nbsp;<wbr>
<p><font face="宋体">Eclipse中默认是输入"."后出现自动提示，用于类成员的自动提示，可是有时候我们希望它能在我们输入类的首字母后就出现自动提示，可以节省大量的输入时间（虽然按alt + /会出现提示，但还是要多按一次按键，太麻烦了）。</font></p>
<p><font face="宋体">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 从Window -&gt; preferences -&gt; Java -&gt; Editor -&gt; Content assist -&gt; Auto-Activation下，我们可以在"."号后面加入我们需要自动提示的首字幕，比如"ahiz"。</font></p>
<p><font face="宋体">&nbsp;<wbr>&nbsp;<wbr>&nbsp;<wbr> 然后我们回到Eclipse的开发环境，输入"a"，提示就出现了。</font></p>
<p><font face="宋体">但是我们可以发现，这个Auto-Activation下的输入框里最多只能输入5个字母，也许是Eclipse的开发人员担心我们输入的太多会影响性能，但计算机的性能不用白不用，所以我们要打破这个限制。</font></p>
<p><font face="宋体">其实上面都是铺垫，制造一下气氛，以显得我们下面要做的事情很牛似的，其实不然，一切都很简单。嘿嘿 :)</font></p>
<p><font face="宋体">在"."后面随便输入几个字符，比如"abij"，然后回到开发环境，File -&gt; export -&gt; general -&gt; preferences -&gt; 选一个地方保存你的首选项，比如C:\a.epf</font></p>
<p><font face="宋体">用任何文本编辑器打开a.epf，查找字符串&#8220;abij&#8221;，找到以后，替换成&#8220;abcdefghijklmnopqrstuvwx<wbr>yz&#8221;，总之就是你想怎样就怎样！！然后回到Eclipse，File -&gt; import -&gt; general -&gt; preferences -&gt; 导入刚才的a.epf文件。此时你会发现输入任何字幕都可以得到自动提示了。爽！！！</font></p>
<p><font face="宋体">最后：自动提示弹出的时间最好改成100毫秒以下，这样会比较爽一点，不然你都完事了，自动提示才弹出来:)，不过也要看机器性能。</font></p>
</div>
</div>
<img src ="http://www.blogjava.net/HappyJava/aggbug/226849.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/HappyJava/" target="_blank">李建軍</a> 2008-09-04 10:05 <a href="http://www.blogjava.net/HappyJava/articles/226849.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse.ini说明</title><link>http://www.blogjava.net/HappyJava/articles/226379.html</link><dc:creator>李建軍</dc:creator><author>李建軍</author><pubDate>Tue, 02 Sep 2008 06:41:00 GMT</pubDate><guid>http://www.blogjava.net/HappyJava/articles/226379.html</guid><wfw:comment>http://www.blogjava.net/HappyJava/comments/226379.html</wfw:comment><comments>http://www.blogjava.net/HappyJava/articles/226379.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/HappyJava/comments/commentRss/226379.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/HappyJava/services/trackbacks/226379.html</trackback:ping><description><![CDATA[<div class="tit">&nbsp;</div>
<table style="table-layout: fixed">
    <tbody>
        <tr>
            <td>
            <div class="cnt" id="blog_text">-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M <br />
            这里有几个问题：<br />
            1. 各个参数的含义什么？<br />
            2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动，而有些机器无法启动？<br />
            3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置？<br />
            <br />
            下面我们一一进行回答<br />
            <br />
            1. 各个参数的含义什么？<br />
            <br />
            参数中-vmargs的意思是设置JVM参数，所以后面的其实都是JVM的参数了，我们首先了解一下JVM内存管理的机制，然后再解释每个参数代表的含义。<br />
            <br />
            堆(Heap)和非堆(Non-heap)内存<br />
            按 照官方的说法：&#8220;Java 虚拟机具有一个堆，堆是运行时数据区域，所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。&#8221;&#8220;在JVM中堆之外的内存称为非堆内存(Non-heap memory)&#8221;。可以看出JVM主要管理两种类型的内存：堆和非堆。简单来说堆就是Java代码可及的内存，是留给开发人员使用的；非堆就是JVM留给 自己用的，所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法 的代码都在非堆内存中。 <br />
            堆内存分配<br />
            JVM初始分配的内存由-Xms指定，默认是物理内存的1/64；JVM最大分配的内存由-Xmx 指定，默认是物理内存的1/4。默认空余堆内存小于40%时，JVM就会增大堆直到-Xmx的最大限制；空余堆内存大于70%时，JVM会减少堆直到- Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。 <br />
            非堆内存分配<br />
            JVM使用-XX:PermSize设置非堆内存初始值，默认是物理内存的1/64；由XX:MaxPermSize设置最大非堆内存的大小，默认是物理内存的1/4。 <br />
            JVM内存限制(最大值)<br />
            首 先JVM内存限制于实际的最大物理内存(废话！呵呵)，假设物理内存无限大的话，JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然 可控内存空间有4GB,但是具体的操作系统会给一个限制，这个限制一般是2GB-3GB（一般来说Windows系统下为1.5G-2G，Linux系统 下为2G-3G），而64bit以上的处理器就不会有限制了。 <br />
            2. 为什么有的机器我将-Xmx和-XX:MaxPermSize都设置为512M之后Eclipse可以启动，而有些机器无法启动？<br />
            <br />
            通过上面对JVM内存管理的介绍我们已经了解到JVM内存包含两种：堆内存和非堆内存，另外JVM最大内存首先取决于实际的物理内存和操作系统。所以说设置VM参数导致程序无法启动主要有以下几种原因：<br />
            <br />
            1) 参数中-Xms的值大于-Xmx，或者-XX:PermSize的值大于-XX:MaxPermSize；<br />
            <br />
            2) -Xmx的值和-XX:MaxPermSize的总和超过了JVM内存的最大限制，比如当前操作系统最大内存限制，或者实际的物理内存等等。说到实际物理 内存这里需要说明一点的是，如果你的内存是1024MB，但实际系统中用到的并不可能是1024MB，因为有一部分被硬件占用了。 <br />
            <br />
            3. 为何将上面的参数写入到eclipse.ini文件Eclipse没有执行对应的设置？<br />
            <br />
            那为什么同样的参数在快捷方式或者命令行中有效而在eclipse.ini文件中是无效的呢？这是因为我们没有遵守eclipse.ini文件的设置规则：<br />
            <br />
            参数形如&#8220;项 值&#8221;这种形式，中间有空格的需要换行书写，如果值中有空格的需要用双引号包括起来。比如我们使用-vm C:\Java\jre1.6.0\bin\javaw.exe参数设置虚拟机，在eclipse.ini文件中要写成这样：<br />
            <br />
            -vm <br />
            C:\Java\jre1.6.0\bin\javaw.exe <br />
            按照上面所说的，最后参数在eclipse.ini中可以写成这个样子：<br />
            <br />
            -vmargs <br />
            -Xms128M <br />
            -Xmx512M <br />
            -XX:PermSize=64M <br />
            -XX:MaxPermSize=128M <br />
            实际运行的结果可以通过Eclipse中&#8220;Help&#8221;-&#8220;About Eclipse SDK&#8221;窗口里面的&#8220;Configuration Details&#8221;按钮进行查看。<br />
            <br />
            另外需要说明的是，Eclipse压缩包中自带的eclipse.ini文件内容是这样的：<br />
            <br />
            -showsplash <br />
            org.eclipse.platform <br />
            --launcher.XXMaxPermSize <br />
            256m <br />
            -vmargs <br />
            -Xms40m <br />
            -Xmx256m <br />
            其 中&#8211;launcher.XXMaxPermSize（注意最前面是两个连接线）跟-XX:MaxPermSize参数的含义基本是一样的，我觉得唯一的区 别就是前者是eclipse.exe启动的时候设置的参数，而后者是eclipse所使用的JVM中的参数。其实二者设置一个就可以了，所以这里可以把 &#8211;launcher.XXMaxPermSize和下一行使用#注释掉。 <br />
            <br />
            <p>3. 其他的启动参数。 如果你有一个双核的CPU，也许可以尝试这个参数:</p>
            <p><code><font face="新宋体">-XX:+UseParallelGC</font></code></p>
            <p>让GC可以更快的执行。（只是JDK 5里对GC新增加的参数）</p>
            </div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/HappyJava/aggbug/226379.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/HappyJava/" target="_blank">李建軍</a> 2008-09-02 14:41 <a href="http://www.blogjava.net/HappyJava/articles/226379.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse代码提示功能的设置</title><link>http://www.blogjava.net/HappyJava/articles/226367.html</link><dc:creator>李建軍</dc:creator><author>李建軍</author><pubDate>Tue, 02 Sep 2008 06:20:00 GMT</pubDate><guid>http://www.blogjava.net/HappyJava/articles/226367.html</guid><wfw:comment>http://www.blogjava.net/HappyJava/comments/226367.html</wfw:comment><comments>http://www.blogjava.net/HappyJava/articles/226367.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/HappyJava/comments/commentRss/226367.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/HappyJava/services/trackbacks/226367.html</trackback:ping><description><![CDATA[<div id="art" style="margin: 15px" width="560">刚才安装了swt Designer，发现提示公能没有了。<br />
解决方法：<br />
<p>windows－&gt;preferences-&gt;java-&gt;Editor-&gt;Code &nbsp; Assist&nbsp;&nbsp; 中</p>
<p>auto－activetion中的Enable auto-activetion选项要勾选上</p>
<p>这里面有个时间的设定是为提示代码设定的显示时间。你可以根据自己的情况设定。</p>
但都不能自动提示，查了查以前eclipse 的设置才找到：window-&gt;Preferences-&gt;Java-&gt;Editor-&gt;Content Assist-&gt;Advanced&nbsp;&nbsp; 上面的选项卡Select the proposal kinds contained in the 'default' content assist list: 中把 <span style="color: rgb(255,1,2)">Other Java Proposals 选项打上勾就可以了。</span>
<p>另注：</p>
<p>有些情况在eclipse中安装插件时代码自动功能失效，同样可以用以上方式修改回来。</p>
</div>
<img src ="http://www.blogjava.net/HappyJava/aggbug/226367.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/HappyJava/" target="_blank">李建軍</a> 2008-09-02 14:20 <a href="http://www.blogjava.net/HappyJava/articles/226367.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java调用.dll文件</title><link>http://www.blogjava.net/HappyJava/articles/219839.html</link><dc:creator>李建軍</dc:creator><author>李建軍</author><pubDate>Mon, 04 Aug 2008 02:47:00 GMT</pubDate><guid>http://www.blogjava.net/HappyJava/articles/219839.html</guid><wfw:comment>http://www.blogjava.net/HappyJava/comments/219839.html</wfw:comment><comments>http://www.blogjava.net/HappyJava/articles/219839.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/HappyJava/comments/commentRss/219839.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/HappyJava/services/trackbacks/219839.html</trackback:ping><description><![CDATA[<p style="margin: 0cm 0cm 0pt"><font size="3"><span style="font-family: 宋体">一</span><font face="Times New Roman">.</font><span style="font-family: 宋体">在程序用</span><font face="Times New Roman">jnative</font><span style="font-family: 宋体">调用</span><font face="Times New Roman">window</font><span style="font-family: 宋体">的</span><font face="Times New Roman">dll</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">1.&nbsp;&nbsp; </font><span style="font-family: 宋体">安装</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">http://sourceforge.net/projects/jnative </font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><span style="font-family: 宋体">解压后得到</span><font face="Times New Roman">3</font><span style="font-family: 宋体">个文件：</span><font face="Times New Roman">JNativeCpp.dll</font><span style="font-family: 宋体">，</span><font face="Times New Roman">libJNativeCpp.so</font><span style="font-family: 宋体">，</span><font face="Times New Roman">JNative.jar</font><span style="font-family: 宋体">，其中：</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">JNativeCpp.dll&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">放在</span><font face="Times New Roman">windows/system32</font><span style="font-family: 宋体">目录下</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">libJNativeCpp.so&nbsp;&nbsp;&nbsp; linux</font><span style="font-family: 宋体">下使用</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">JNative.jar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">导入工程中</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">2.&nbsp;&nbsp; </font><span style="font-family: 宋体">使用</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">2.1.&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">加载</span><font face="Times New Roman">dll</font><span style="font-family: 宋体">文件</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">JNative</font><span style="font-family: 宋体">可使用两种方式加载</span><font face="Times New Roman">dll</font><span style="font-family: 宋体">文件：</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">a.</font><span style="font-family: 宋体">使用</span><font face="Times New Roman">System.loadLibrary</font><span style="font-family: 宋体">加载</span><font face="Times New Roman">,</font><span style="font-family: 宋体">使用此方法可加载系统目录中的</span><font face="Times New Roman">dll</font><span style="font-family: 宋体">文件。</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">b.</font><span style="font-family: 宋体">可以先把</span><font face="Times New Roman">dll</font><span style="font-family: 宋体">文件复制到</span><font face="Times New Roman">system32</font><span style="font-family: 宋体">目录下，使用文件前缀名作为参数来加载</span><font face="Times New Roman">dll</font><span style="font-family: 宋体">文件。使用</span><font face="Times New Roman">System.load</font><span style="font-family: 宋体">加载</span><font face="Times New Roman">,</font><span style="font-family: 宋体">此方法参数为</span><font face="Times New Roman">dll</font><span style="font-family: 宋体">文件全路径名。</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">2.2.&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">调用函数</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">a</font><span style="font-family: 宋体">、首先创建</span><font face="Times New Roman">JNative</font><span style="font-family: 宋体">对象：</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">JNative jnative = new JNative(dll</font><span style="font-family: 宋体">文件名</span><font face="Times New Roman">, </font><span style="font-family: 宋体">函数名</span><font face="Times New Roman">);</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">b</font><span style="font-family: 宋体">、设置返回值类型：</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">jnative.setRetVal(Type.INT);</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">c</font><span style="font-family: 宋体">、设置参数</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">jnative.setParameter(0, Type.STRING, </font><span style="font-family: 宋体">&#8230;</span><font face="Times New Roman">); //</font><span style="font-family: 宋体">设置第一个参数为字符串</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">jnative.setParameter(1, Type.INT, String.valueof(</font><span style="font-family: 宋体">&#8230;</span><font face="Times New Roman">));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //</font><span style="font-family: 宋体">设置第二个参数为整数</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">d</font><span style="font-family: 宋体">、执行</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">n.invoke();</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">e</font><span style="font-family: 宋体">、获取返回值</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">Integer.parseInt(jnative.getRetVal());</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">3.</font><span style="font-family: 宋体">实例</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">import org.xvolks.jnative.JNative;</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">import org.xvolks.jnative.Type;</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">import org.xvolks.jnative.exceptions.NativeException;</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">import org.xvolks.jnative.pointers.Pointer;</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">import org.xvolks.jnative.pointers.memory.HeapMemoryBlock;</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">public class Test {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static void main(String[] args) throws NativeException, IllegalAccessException {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JNative v=new JNative("Kernel32.dll","GetModuleFileNameA");</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int i = 0;</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v.setRetVal(Type.INT);</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Pointer pName = new Pointer(new HeapMemoryBlock(1024));</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v.setParameter(i++, 0);//module handle</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v.setParameter(i++, pName);//pFileName</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v.setParameter(i++, 1024);//nSize</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v.setRetVal(Type.INT);</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v.invoke();</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int ret = Integer.parseInt(v.getRetVal());</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ret == 0) {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // return "null";</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.err.println(</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "GetModuleFileName failed!");</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String path = pName.getAsString().substring(0,</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret);</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pName.dispose();</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; v.dispose();</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println("current process's path is:"+path);</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp; }</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">}</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">4.</font><span style="font-family: 宋体">注意</span><font face="Times New Roman">:</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><span style="font-family: 宋体">在</span><font face="Times New Roman">JNative</font><span style="font-family: 宋体">中用了</span><font face="Times New Roman">JDK1.5</font><span style="font-family: 宋体">的一些特性，如枚举、静态引入等，所以在</span><font face="Times New Roman">JDK1.4</font><span style="font-family: 宋体">下是不能用的。</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><span style="font-family: 宋体">二</span><font face="Times New Roman">.</font><span style="font-family: 宋体">在程序用</span><font face="Times New Roman">jawin</font><span style="font-family: 宋体">调用</span><font face="Times New Roman">window</font><span style="font-family: 宋体">的</span><font face="Times New Roman">dll</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">jawin </font><span style="font-family: 宋体">可以对</span><font face="Times New Roman">dll</font><span style="font-family: 宋体">中的方法进行调用，也可以调用</span><font face="Times New Roman">com</font><span style="font-family: 宋体">中的方法</span><font face="Times New Roman">.</font><span style="font-family: 宋体">内部还提供了一个工具，直接对</span><font face="Times New Roman"> com</font><span style="font-family: 宋体">组件导出成</span><font face="Times New Roman"> java</font><span style="font-family: 宋体">的类，个人认为很方便。</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><span style="font-family: 宋体">下面是我们作的一个测试，很顺利便通过了。</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">1</font><span style="font-family: 宋体">、下载</span><font face="Times New Roman">jawin</font><span style="font-family: 宋体">：</span><font face="Times New Roman">http://jawinproject.sourceforge.net/</font><span style="font-family: 宋体">。</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">2</font><span style="font-family: 宋体">、配置：</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp; a.</font><span style="font-family: 宋体">将</span><font face="Times New Roman">jawin.jar</font><span style="font-family: 宋体">放于</span><font face="Times New Roman">%JAVA_HOME%"jre"lib"ext</font><span style="font-family: 宋体">下</span><span style="font-family: 宋体">。</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp; b.</font><span style="font-family: 宋体">将</span><font face="Times New Roman">jawin.dll</font><span style="font-family: 宋体">放于</span><font face="Times New Roman">c:"winnt"system32</font><span style="font-family: 宋体">下。否则将出现错误：</span><font face="Times New Roman">COMException : no jawin in java.library.path</font><span style="font-family: 宋体">；</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">也可将</span><font face="Times New Roman">jawin.dll</font><span style="font-family: 宋体">放于每个项目目录下。</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp; c.</font><span style="font-family: 宋体">至此在</span><font face="Times New Roman">Editplus</font><span style="font-family: 宋体">中调试</span><font face="Times New Roman">Jawin/NJawin</font><span style="font-family: 宋体">的例子，可以通过。</span><span style="font-family: 宋体">而在</span><font face="Times New Roman">Eclipse</font><span style="font-family: 宋体">中有时还会出上面的错误：</span><font face="Times New Roman">COMException : no jawin in java.library.path</font><span style="font-family: 宋体">。</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp; d.</font><span style="font-family: 宋体">在</span><font face="Times New Roman">Eclipse</font><span style="font-family: 宋体">中，菜单</span><font face="Times New Roman">-&gt;window-&gt;preference-&gt;Java-&gt;installed JREs </font><span style="font-family: 宋体">将原来的</span><font face="Times New Roman">remove,</font><span style="font-family: 宋体">重新建一个指到你的</span><font face="Times New Roman">java sdk</font><span style="font-family: 宋体">目录。</span><font face="Times New Roman">&nbsp;ok</font><span style="font-family: 宋体">了。</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;3</font><span style="font-family: 宋体">、程序测试：</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">import org.jawin.FuncPtr;</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">import org.jawin.ReturnFlags;</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">public class GfJawinTest {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static void main(String[] args) {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FuncPtr msgBox = new FuncPtr("USER32.DLL", "MessageBoxW");</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msgBox.invoke_I(0, "Hello From a DLL", "From Jawin", 0, ReturnFlags.CHECK_NONE);</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">}</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">4.</font><span style="font-family: 宋体">利用</span><font face="Times New Roman">jawin</font><span style="font-family: 宋体">调用</span><font face="Times New Roman">com</font><span style="font-family: 宋体">组件</span><font face="Times New Roman">, </font><span style="font-family: 宋体">如</span><font face="Times New Roman">word: </font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">//</font><span style="font-family: 宋体">创建</span><font face="Times New Roman">word</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">import org.jawin.DispatchPtr;</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">import org.jawin.win32.Ole32;</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">public class CreateWord {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static void main(String[] args) {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ole32.CoInitialize();//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">初始化</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DispatchPtr app = new DispatchPtr("Word.Application");//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">创建</span><font face="Times New Roman">word</font><span style="font-family: 宋体">对象</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app.put("Visible",true); //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">使</span><font face="Times New Roman">word</font><span style="font-family: 宋体">可见</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DispatchPtr docs=(DispatchPtr)app.get("Documents"); //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">获得</span><font face="Times New Roman">document</font><span style="font-family: 宋体">对象集合</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DispatchPtr doc=(DispatchPtr)docs.invoke("Add");&nbsp;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">新增一个文档</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app.invoke("Activate"); //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">激活当前文档</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DispatchPtr objTextFont=(DispatchPtr)((DispatchPtr)doc.get("Content")).get("Font"); </font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">取得</span><font face="Times New Roman">Font</font><span style="font-family: 宋体">对象</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; objTextFont.put("Name","</font><span style="font-family: 宋体">黑体</span><font face="Times New Roman">"); </font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">设置字体</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; objTextFont.put("Size","48"); </font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">设置字号</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DispatchPtr docSelection=(DispatchPtr)app.get("Selection"); </font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">取得</span><font face="Times New Roman">Selection</font><span style="font-family: 宋体">对象</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; docSelection.invoke("TypeText","Jawwintesttext!"nJawin</font><span style="font-family: 宋体">测试文本。</span><font face="Times New Roman">"); </font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">使用</span><font face="Times New Roman">TypeText</font><span style="font-family: 宋体">方法添加文本</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.invoke("SaveAs","d:""jawintest.doc"); </font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">保存文档</span><font face="Times New Roman">(</font><span style="font-family: 宋体">保存在</span><font face="Times New Roman">C</font><span style="font-family: 宋体">盘根目录下</span><font face="Times New Roman">) </font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.invoke("Close"); </font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">关闭当前文档，去掉前面的注释符并重新编译后可生效</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app.invoke("Quit"); </font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">退出</span><font face="Times New Roman">Word</font><span style="font-family: 宋体">，去掉前面的注释符并重新编译后可生效</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ole32.CoUninitialize(); //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font><span style="font-family: 宋体">释放对象</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">}</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">//</font><span style="font-family: 宋体">打开</span><font face="Times New Roman">word</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">import org.jawin.DispatchPtr;</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">import org.jawin.win32.Ole32;</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">public class OpenWord {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static void main(String[] args) {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ole32.CoInitialize();</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DispatchPtr app = new DispatchPtr("Word.Application");</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app.put("Visible", true);</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DispatchPtr docs = (DispatchPtr) app.get("Documents");</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DispatchPtr doc = (DispatchPtr) docs.invoke("Open", "d:""word.doc");</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ole32.CoUninitialize();</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">}</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">//</font><span style="font-family: 宋体">调用</span><font face="Times New Roman">word</font><span style="font-family: 宋体">中的另存为</span><font face="Times New Roman">,</font><span style="font-family: 宋体">保存为</span><font face="Times New Roman">.html</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">import org.jawin.DispatchPtr;</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">import org.jawin.win32.Ole32;</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">public class Word2Html {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static void main(String[] args) {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font face="Times New Roman" size="3">&nbsp;</font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String path = "e://17001939578.doc";</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int iPos = path.lastIndexOf(".");</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String fileExtName = path.substring(iPos + 1);</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String fileMainName = path.substring(0, iPos);</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fileExtName = fileExtName.toLowerCase();</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ole32.CoInitialize();</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </font><span style="font-family: 宋体">初始化</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DispatchPtr app = new DispatchPtr("Word.Application");</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </font><span style="font-family: 宋体">创建</span><font face="Times New Roman">word</font><span style="font-family: 宋体">对象</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app.put("Visible", false);</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </font><span style="font-family: 宋体">设置</span><font face="Times New Roman">word</font><span style="font-family: 宋体">不可见</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DispatchPtr docs = (DispatchPtr) app.get("Documents");</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </font><span style="font-family: 宋体">取得</span><font face="Times New Roman">Documents</font><span style="font-family: 宋体">对象</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DispatchPtr doc = (DispatchPtr) docs.invoke("Open", path);</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </font><span style="font-family: 宋体">打开指定的</span><font face="Times New Roman">word</font><span style="font-family: 宋体">文件</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.invoke("SaveAs", fileMainName + ".html");</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </font><span style="font-family: 宋体">另存为</span><font face="Times New Roman">HTML</font><span style="font-family: 宋体">文件</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app.invoke("quit");</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </font><span style="font-family: 宋体">关闭</span><font face="Times New Roman">word</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ole32.CoUninitialize();</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </font><span style="font-family: 宋体">释放对象</span></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(""n</font><span style="font-family: 宋体">转换完成！</span><font face="Times New Roman">");</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(""n</font><span style="font-family: 宋体">文件名：</span><font face="Times New Roman">" + fileMainName + ".html");</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } catch (Exception e) {</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(""n</font><span style="font-family: 宋体">该文件不存在！或者其他错误</span><font face="Times New Roman">(</font><span style="font-family: 宋体">如：运行环境问题</span><font face="Times New Roman">)</font><span style="font-family: 宋体">！</span><font face="Times New Roman">");</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></font></p>
<p style="margin: 0cm 0cm 0pt"><font size="3"><font face="Times New Roman">}</font></font></p>
<img src ="http://www.blogjava.net/HappyJava/aggbug/219839.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/HappyJava/" target="_blank">李建軍</a> 2008-08-04 10:47 <a href="http://www.blogjava.net/HappyJava/articles/219839.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>delphi日期函数</title><link>http://www.blogjava.net/HappyJava/articles/216617.html</link><dc:creator>李建軍</dc:creator><author>李建軍</author><pubDate>Tue, 22 Jul 2008 07:14:00 GMT</pubDate><guid>http://www.blogjava.net/HappyJava/articles/216617.html</guid><wfw:comment>http://www.blogjava.net/HappyJava/comments/216617.html</wfw:comment><comments>http://www.blogjava.net/HappyJava/articles/216617.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/HappyJava/comments/commentRss/216617.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/HappyJava/services/trackbacks/216617.html</trackback:ping><description><![CDATA[<div class="date">&nbsp;</div>
<table style="table-layout: fixed">
    <tbody>
        <tr>
            <td>
            <div class="cnt" id="blog_text">Day 开头的函数 <br />
            ● <br />
            Unit <br />
            <br />
            DateUtils <br />
            <br />
            function DateOf(const Avalue: TDateTime): TDateTime; <br />
            <br />
            描述 <br />
            使用 DateOf 函数用来把一个 TDateTime 类型的变量转变成一个 <br />
            只带有日期的 TDateTime 类型变量。 <br />
            例如： <br />
            showmessage(DateTimetostr(dateof(now()))); <br />
            你得到的是 2003/03/19 <br />
            而 showmessage(DateTimetostr((now()))); <br />
            得到的是 2003/03/19 10:50:49 <br />
            <br />
            ●function DateTimeToStr(DateTime: TDateTime): string; <br />
            <br />
            描述 <br />
            DateTimeToString 函数将 TDateTime 类型的参数 DateTime 转换成一个 <br />
            字符串，使用给定的全局变量 ShortDateFormat 的格式，时间部分按照 <br />
            给定的全局变量 LongTimeFormat 的格式。 <br />
            其中 DateTime 为零的部分将不会显示出来。 <br />
            <br />
            例如： <br />
            ShortDateFormat:=&#8217;yyyy mm dd&#8217;; <br />
            showmessage(DateTimetostr((now()))); <br />
            你将得到：2003 03 19 10:50:49 <br />
            <br />
            <br />
            ●procedure DateTimeToString(var Result: string; const Format: string; DateTime: TDateTime); <br />
            <br />
            描述： <br />
            DateTimeToString 方法将TDateTime类型的参数DateTime 按照由参数Format提供的格式 <br />
            转化成字符串，并保存在Result中。 <br />
            对于Format的格式类型，请看 Date-Time format strings 的帮助。 <br />
            <br />
            例如： <br />
            DateTimeToString(result,&#8217;yyyy mm dd&#8217;,now()); <br />
            那么 result的结果为：2003 03 19 10:50:49 <br />
            <br />
            ●procedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TSystemTime); <br />
            <br />
            描述： <br />
            有时为了调用API函数来使用系统时间，你可以使用 DateTimeToSystemTime 方法，来将一个 <br />
            TDateTime 类型的时间变量转换成一个 TSystemTime 类型的 系统时间。 <br />
            <br />
            ●function DateTimeToUnix(const Avalue: TDateTime ): Int64; <br />
            <br />
            描述： <br />
            使用 DateTimeToUnix 函数来将一个 TDateTime 型时间变量转换成一个相应的 Unix 格式 <br />
            的日期和时间。 <br />
            Unix date-and-time values are encoded as the number of seconds that have elapsed <br />
            since midnight at the start of January 1, 1970. <br />
            <br />
            <br />
            ●function DateToStr(Date: TDateTime): string; <br />
            <br />
            描述： <br />
            使用 DateToStr 函数能得到 TDateTime 日期时间类型的日期部分。日期的转换格式依赖于 <br />
            全局变量 ShortDateFormat。 <br />
            <br />
            ●function DayOf(const Avalue: TDateTime): Word; <br />
            <br />
            描述： <br />
            对于给定的TDateTime类型的日期时间，使用 DayOf 函数能得到该日期是该月份的第几天。 <br />
            该函数的返回数值在 1 到 31 之间 <br />
            注意：DayOf 函数得到的结果与 DayOfTheMonth 相同。 <br />
            <br />
            例如： <br />
            showmessage(inttostr(dayof(now))); <br />
            得到的是：19 （今天是 某月19日） <br />
            <br />
            ●function DayOfTheMonth(const Avalue: TDateTime): Word; <br />
            <br />
            与 DayOf 相同。 <br />
            <br />
            ●function DayOfTheWeek(const Avalue: TDateTime): Word; <br />
            <br />
            描述： <br />
            对于给定的TDateTime类型的日期时间，使用 DayOfTheWeek 函数能得到该日期是该星期的 <br />
            第几天。DayOfTheWeek 函数的返回数值为 1 到 7，其中 1 表示星期一，而 7 表示星期日。 <br />
            注意：DayOfTheWeek 是 ISO 8601 标准的（此标准为 星期一是一周的第一天）。对于一周 <br />
            的第一天是星期日的标准，如果想获得星期数，请使用 DayOfWeek 函数。 <br />
            Tip: To make the return value more readable, use the Day of week constants. <br />
            <br />
            ●function DayOfTheYear(const Avalue: TDateTime): Word; <br />
            <br />
            描述： <br />
            根据给定的日期时间参数Avalue，使用 DayOfTheYear 函数能得到在该日期所在的年份中，该 <br />
            日期按照顺序所计算的天数。因此，作为TDateTime类型的变量 &#8220;1月1日&#8221;在该函数所得到的 <br />
            结果为 1 ，&#8220;1月2日&#8221;所得到的结果为 2，&#8220;2月1日&#8221;所得到的结果就为 32，依次类推。 <br />
            <br />
            ●function DayOfWeek(Date: TDateTime): Integer; <br />
            <br />
            Description <br />
            <br />
            DayOfWeek returns the day of the week of the specified date as an integer between <br />
            1 and 7, where Sunday is the first day of the week and Saturday is the seventh. <br />
            <br />
            Note: DayOfWeek is not compliant with the ISO 8601 standard, which defines Monday <br />
            as the first day of the week. For an ISO 8601 compliant version, use the DayOfTheWeek <br />
            function instead. <br />
            <br />
            描述： <br />
            按照给定的TDateTime类型的参数Date，DayOfWeek 函数得到一周中的第几天，从1到7。 <br />
            这里 星期日 是一周的第一天，而 星期六 是第七天。 <br />
            <br />
            ●function DaysBetween(const ANow, AThen: TDateTime): Integer; <br />
            <br />
            描述： <br />
            根据两个TDateTime类型的日期时间变量 ANow 和 AThen，DaysBetween函数能得到两者之间的 <br />
            天数的差距。 <br />
            DaysBetween 仅仅根据天数的不同来计算。因此，对于 1999年12月31日 下午11点59分 到 <br />
            2000年1月1日 11点58分，该函数得到的结果是 0，因为两者之间的时间差别还差 1 分钟才到 <br />
            1 天。 <br />
            <br />
            ●function DaysInAMonth(const AYear, AMonth: Word): Word; <br />
            <br />
            描述： <br />
            对于各定的 年份和月份，DaysInAMonth 函数能得到 该月份的总天数。 <br />
            年份应该为 从 1 到 9999 <br />
            月份应该为 从 1 到 12 <br />
            <br />
            ●function DaysInAYear(const AYear: Word): Word; <br />
            <br />
            描述： <br />
            对于给定的年份，DaysInAYear函数能得到该年份的总天数。 <br />
            年份应该为 1 到 9999。 <br />
            <br />
            ●function DaysInMonth(const Avalue: TDateTime): Word; <br />
            <br />
            描述： <br />
            根据给定的TDateTime类型的时间日期参数Avalue，DaysInMonth函数能得到该月份的总天数。 <br />
            <br />
            ●function DaysInYear(const Avalue: TDateTime): Word; <br />
            <br />
            描述： <br />
            根据给定的TDateTime类型的时间日期参数Avalue，DaysInYear函数能得到该年份的总天数。 <br />
            <br />
            ●function DaySpan(const ANow, AThen: TDateTime): Double; <br />
            <br />
            描述： <br />
            根据两个TDateTime类型的日期时间参数ANow和AThen，DaySpan能得到在天数上的差距。 <br />
            与 DaysBetween 函数不同，DaysBetween 函数 只是计算 整的天数，而 DaySpan函数会 <br />
            将不足一天的数也得到。 <br />
            注意：此函数返回的数值为 Double 型。 <br />
            <br />
            ☆ Month 开头的函数 <br />
            <br />
            ●function MonthOf(const Avalue: TDateTime): Word; <br />
            <br />
            描述： <br />
            根据给定的TDateTime类型的时间日期参数Avalue，MonthOf函数能得到该年份的该月份数。 <br />
            MonthOf返回数值为 1 到 12。 <br />
            注意：MonthOf函数得到的数值与MonthOfTheYear函数相同 <br />
            <br />
            ●function MonthOfTheYear(const Avalue: TDateTime): Word; <br />
            <br />
            与MonthOf函数相同。 <br />
            <br />
            ●function MonthsBetween(const ANow, AThen: TDateTime): Integer; <br />
            <br />
            描述： <br />
            根据两个给定的TDateTime类型的参数ANow和AThen，MonthsBetween函数能得到两个日期在月份 <br />
            上差距数。因为月份的天数是不同的，所以 MonthsBetween 函数返回的是一个近似值，该近似 <br />
            值基于每个月份为 30.4375 天。不足一个月的数字将不被计算。 <br />
            因此，例如，对于 2月1日 到 2月28日，MonthsBetween 返回的数值为 0。 <br />
            同样，对于 2月1日 到 3月1日，MonthsBetween 返回的数值也是 0。 <br />
            <br />
            ●function MonthSpan(const ANow, AThen: TDateTime): Double; <br />
            <br />
            描述： <br />
            根据两个给定的TDateTime类型的参数ANow和AThen，MonthsBetween函数能得到两个日期在月份 <br />
            上差距数。因为月份的天数是不同的，所以 MonthsBetween 函数返回的是一个近似值，该近似 <br />
            值基于每个月份为 30.4375 天。与 MonthsBetween 函数不同，MonthsBetween函数不计算不足 <br />
            一个月的数字，MonthSpan函数将会得到不足一个月的数字。 <br />
            注意：此函数返回的类型为 Double <br />
            <br />
            ●function MonthStr(DateTime: TDateTime): string; <br />
            <br />
            Description <br />
            <br />
            HTTP message headers permit several formats for the representation of date and time <br />
            values. MonthStr converts a TDateTime value into a string representing the month. <br />
            MonthStr allows server applications to work with date values taken from HTTP request <br />
            messages, without worrying about the details of how they are formatted. <br />
            <br />
            ☆ Week 开头的函数 <br />
            <br />
            ●function WeekOf(const Avalue: TDateTime): Word; <br />
            <br />
            描述： <br />
            根据TDateTime类型的日期时间参数AValu，WeekOf函数会得到该星期为一年的第几个 <br />
            星期。 <br />
            <br />
            ●function WeeksInAYear(const AYear: Word): Word; <br />
            <br />
            描述： <br />
            WeeksInAYear 函数根据年份得到在该年份中共包含多少个星期。 <br />
            <br />
            ●function WeeksBetween(const ANow, AThen: TDateTime): Integer; <br />
            <br />
            描述： <br />
            根据两个TDateTime类型的日期时间参数ANow和AThen，WeeksBetween函数将得到这两个时间在 <br />
            星期上的差数。如果差数不足一个星期，则忽略掉。 <br />
            <br />
            ●function WeekSpan(const ANow, AThen: TDateTime): Double; <br />
            <br />
            描述： <br />
            根据两个TDateTime类型的日期时间参数ANow和AThen，WeeksBetween函数将得到这两个时间在 <br />
            星期上的差数。如果差数不足一个星期，则WeekSpan函数不会忽略掉。 <br />
            注意：此函数的返回类型为 Double <br />
            <br />
            ☆ Year 开头的函数 <br />
            <br />
            ●function YearOf(const Avalue: TDateTime): Word; <br />
            <br />
            描述： <br />
            根据给定的TDateTime类型的日期时间参数Avalue，YearOf函数能得到该日期的年份数字。 <br />
            YearOf函数返回的数值为从 1 到 9999 <br />
            <br />
            ●function YearsBetween(const ANow, AThen: TDateTime): Integer; <br />
            <br />
            描述： <br />
            根据两个给定的TDateTime类型的参数ANow和AThen，YearsBetween函数能得到两个日期在年份 <br />
            上差距数。因为年份的天数是不同的，所以 YearsBetween 函数返回的是一个近似值，该近似 <br />
            值基于每年的天数为 365.25 天。不足的一年的差距将不会被计算。 <br />
            因此例如：对于 1月1日和12月31日，如果这两个日期在同一年，则 YearsBetween 返回数值 <br />
            为 0；如果这两个日期在临近的年份，则 YearsBetween 函数返回数值为 1。 <br />
            <br />
            ●function YearSpan(const ANow, AThen: TDateTime): Double; <br />
            <br />
            描述： <br />
            根据两个给定的TDateTime类型的参数ANow和AThen，YearsBetween函数能得到两个日期在年份 <br />
            上差距数。因为年份的天数是不同的，所以 YearsBetween 函数返回的是一个近似值，该近似 <br />
            值基于每年的天数为 365.25 天。与 YearsBetween 函数不同，YearsBetween函数将忽略掉不 <br />
            足一年的数字，而 YearSpan 将计算不足一年的数字。 <br />
            注意：该函数返回类型为Double <br />
            <br />
            <br />
            ●function Yesterday: TDateTime; <br />
            <br />
            描述： <br />
            Yesterday函数能得到当前日期的前一天的日期，返回数值中不包括时间部分。 <br />
            例如： <br />
            当前日期是 2003/3/19 <br />
            则 showmessage(datetimetostr(Yesterday)); <br />
            将得到 2003/3/18 <br />
            <br />
            ☆日期的合成 <br />
            ●function EncodeDate(Year, Month, Day: Word): TDateTime; <br />
            <br />
            描述： <br />
            EncodeDate函数将根据参数 年份、月份、日子 而得到一个TDateTime类型的时间变量。 <br />
            <br />
            ●function EncodeDateDay(const AYear, ADayOfYear: Word): TDateTime; <br />
            <br />
            描述： <br />
            EncodeDateDay将根据参数年份和天数，而得到一个TDateTime类型的时间变量。 <br />
            其中AYear 为 1 到 9999。 <br />
            ADayOfYear 为日子在该年份顺序排列的天数，例如，1月1日时，ADayOfYear为1， <br />
            2月2日时，ADayOfYear为2，3月1日时，ADayOfYear为32。 <br />
            <br />
            ●function EncodeDateMonthWeek(const AYear, AMonth, AWeekOfMonth: Word; const ADayOfWeek: Word = <br />
            <br />
            1): TDateTime; <br />
            <br />
            描述： <br />
            EncodeDateMonthWeek 函数将根据参数 年份、月份、星期数，星期几，来得到一个TDateTime类型 <br />
            的时间变量。 <br />
            其中AYear 为 1 到 9999。 <br />
            其中AMonth 为 1 到 12。 <br />
            AWeekOfMonth是在该月份的星期数，1 表示第一个星期，可能包含4天或更多的天数。 <br />
            注意，一个月的第一天如果是 星期5，星期6或星期日，用表示这三天的AMonth数值必须设定 <br />
            为上一个月份的数字，同时 AWeekOfMonth 要设为在上一个月所在的星期数。 <br />
            同样，如果一个月的最后一天是 星期1，星期2，或星期3，那么用表示这三天的AMonth数值 <br />
            必须设定为下一个月份的数字，同时 AWeekOfMonth 为 1。 <br />
            ADayOfWeek表示星期几，星期一为1，星期二为2。 <br />
            <br />
            ●function EncodeDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: <br />
            <br />
            Word):TDateTime; <br />
            <br />
            描述： <br />
            EncodeDateTime 根据参数 年份、月份、日子、小时、分、秒、毫秒 来得到一个TDateTime类型 <br />
            日期时间。 <br />
            <br />
            ●function EncodeDateWeek(const AYear, AWeekOfYear: Word; const ADayOfWeek: Word = 1): TDateTime; <br />
            <br />
            描述： <br />
            <br />
            EncodeDateWeek 根据参数 年份、星期数、星期几 来得到一个TDateTime类型日期时间。 <br />
            <br />
            AWeekOfYear是在该年份的星期数，1 表示第一个星期，可能包含4天或更多的天数。 <br />
            注意，一年的第一天如果是 星期5，星期6或星期日，用表示这三天的AYear数值必须设定 <br />
            为上一个年份的数字，同时 AWeekOfYear 要设为在上一个年所在的星期数。 <br />
            同样，如果一年的最后一天是 星期1，星期2，或星期3，那么用表示这三天的AYear数值 <br />
            必须设定为下一个年份的数字，同时 AWeekOfYear 为 1。 <br />
            ADayOfWeek表示星期几，星期一为1，星期二为2。 <br />
            <br />
            ●function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime; <br />
            <br />
            描述： <br />
            EncodeTime函数根据参数 小时、分、秒、毫秒 得到个一个TDateTime数值。 <br />
            <br />
            ☆日期的分解 <br />
            <br />
            ●procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word); <br />
            <br />
            描述： <br />
            DecodeDate从一个TDateTime类型参数Date中分解出得到年份、月份、日子。 <br />
            <br />
            ●procedure DecodeDateDay(const Avalue: TDateTime; out AYear, ADayOfYear: Word); <br />
            <br />
            描述： <br />
            DecodeDateDay 方法会根据TDateTime类型参数Avalue 得到相应的年份和日期总数。 <br />
            ADayOfYear：1月1日，此数值为1；1月2日，此数值为2。 <br />
            <br />
            ●procedure DecodeDateMonthWeek(const Avalue: TDateTime; out AYear, AMonth, AWeekOfMonth, <br />
            <br />
            ADayOfWeek: Word); <br />
            <br />
            描述： <br />
            DecodeDateMonthWeek方法根据TDateTime类型参数Avalue 得到相应的年份、月份、月份中的第几个 <br />
            星期、星期几 <br />
            AYear：年份 <br />
            AMonth：月份，1 到 12 <br />
            AWeekOfMonth：在该月份中的第几个星期 <br />
            ADayOfWeek：星期几。星期一为1。 <br />
            <br />
            ●procedure DecodeDateTime(const Avalue: TDateTime; out AYear, AMonth, ADay, AHour, AMinute, <br />
            <br />
            ASecond, AMilliSecond: Word); <br />
            <br />
            描述： <br />
            DecodeDateTime 方法根据TDateTime类型参数Avalue 得到相应的年份、月份、日子、小时、分、秒、 <br />
            毫秒。 <br />
            <br />
            ●procedure DecodeDateWeek(const Avalue: TDateTime; out AYear, AWeekOfYear, ADayOfWeek: Word); <br />
            <br />
            描述： <br />
            DecodeDateWeek方法根据TDateTime类型参数Avalue 得到相应的年份、在该年中的第几个星期、星期几。</div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/HappyJava/aggbug/216617.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/HappyJava/" target="_blank">李建軍</a> 2008-07-22 15:14 <a href="http://www.blogjava.net/HappyJava/articles/216617.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>