import java.util.HashMap;
import java.util.Iterator;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;
public class Java2word
{
private boolean saveOnExit;
/**
* word文檔
*/
Dispatch doc = null;
/**
* word運行程式物件
*/
final static ActiveXComponent word;
/**
* 所有word文檔
*/
final static Dispatch documents;
static
{
word = new ActiveXComponent("Word.Application");
word.setProperty("Visible", new Variant(false));
documents = word.getProperty("Documents").toDispatch();
}
/**
* 構造函數
*/
public Java2word()
{
saveOnExit = true;
}
/**
* 打開文件
*
* @param inputDoc
* String 要打開的檔,全路徑
* @return Dispatch 打開的文件
*/
public Dispatch open(String inputDoc)
{
return Dispatch.call(documents, "Open", inputDoc).toDispatch();
}
2011年6月14日 星期二
2011年4月28日 星期四
informix for linux安裝
第一步:下載
ids 9.4 for linux:
ftp://ftp.youngcow.net/Special/Database/DatabaseServer/Informix/InformixDynamicServerVersion9.4/IIUG-IDS-9.4-linux.zip
這個線程有限制
http://202.96.110.133/informix/ids9.4/IIUG-IDS-9.4-linux.zip
這個更快,視網絡定吧;
csdk for linux:
ftp://ftp.software.ibm.com/software/data/informix/downloads/clientsdk.2.81.UC2.LINUX.tar
第二步:linux搭建安裝informix的環境
建立informix組:groupadd -g 20000 informix
建立informix用戶:useradd -u 20000 -g 20000 -d /home/informix -m informix
修改informix用戶環境變量:
修改.bash_profile文件增加以下環境變量
INFORMIXDIR=/home/informix
INFORMIXSERVER=cs_dbs
ONCONFIG=onconfig.cs
DBDATE=MDY4*
LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH
export INFORMIXDIR INFORMIXSERVER ONCONFIG LD_LIBRARY_PATH
PATH=$PATH:$INFORMIXDIR/bin
export PATH
這個就不用偶解釋了吧;
第三步:準備安裝文件
ids 9.4 for linux:
ftp://ftp.youngcow.net/Special/Database/DatabaseServer/Informix/InformixDynamicServerVersion9.4/IIUG-IDS-9.4-linux.zip
這個線程有限制
http://202.96.110.133/informix/ids9.4/IIUG-IDS-9.4-linux.zip
這個更快,視網絡定吧;
csdk for linux:
ftp://ftp.software.ibm.com/software/data/informix/downloads/clientsdk.2.81.UC2.LINUX.tar
第二步:linux搭建安裝informix的環境
建立informix組:groupadd -g 20000 informix
建立informix用戶:useradd -u 20000 -g 20000 -d /home/informix -m informix
修改informix用戶環境變量:
修改.bash_profile文件增加以下環境變量
INFORMIXDIR=/home/informix
INFORMIXSERVER=cs_dbs
ONCONFIG=onconfig.cs
DBDATE=MDY4*
LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:$LD_LIBRARY_PATH
export INFORMIXDIR INFORMIXSERVER ONCONFIG LD_LIBRARY_PATH
PATH=$PATH:$INFORMIXDIR/bin
export PATH
這個就不用偶解釋了吧;
第三步:準備安裝文件
標籤:
Informix
2011年4月27日 星期三
Tar 備份筆記
Tar 備份且排除不想備份的目錄或檔案
要備份的目錄是 aaa
不想要備份的是 aaa 裡面的 bbb 子目錄
於是我們加上參數 --exclude=不想要備份的目錄名稱,如果某個檔案不想備份也可以在此加入完整路徑及檔名
最後的 tar 指令如下
tar cvf aaa.tar --exclude=aaa/bbb aaa/
這樣就不會將 bbb 目錄備份進來了
-----------------------------------------
Tar 備份特定檔案
tar cvf aaa.tar aaa/*.jpg
要備份的目錄是 aaa
不想要備份的是 aaa 裡面的 bbb 子目錄
於是我們加上參數 --exclude=不想要備份的目錄名稱,如果某個檔案不想備份也可以在此加入完整路徑及檔名
最後的 tar 指令如下
tar cvf aaa.tar --exclude=aaa/bbb aaa/
這樣就不會將 bbb 目錄備份進來了
-----------------------------------------
Tar 備份特定檔案
tar cvf aaa.tar aaa/*.jpg
2011年4月8日 星期五
在Java中操作XML - JAXB使用教學
JAXB簡介
JAXB的全名是Java Architecture for XML Binding,是Sun官方發展的技術,提供Java物件和XML文件自動mapping的機制,使我們能夠很容易的操作XML而不用去爬樹 (parse DOM tree)或是免除為了哪個節點之後要新增哪個節點又應該是哪一種內容的苦惱。
目前JAXB是屬於Java Web Services Developer Pack的實做套件之一,Sun官方預計在即將釋出的Java SE 6將其包裝在裡頭,因此到時候我們就不必再特地下載JAXB的實做套件了。
JAXB的全名是Java Architecture for XML Binding,是Sun官方發展的技術,提供Java物件和XML文件自動mapping的機制,使我們能夠很容易的操作XML而不用去爬樹 (parse DOM tree)或是免除為了哪個節點之後要新增哪個節點又應該是哪一種內容的苦惱。
目前JAXB是屬於Java Web Services Developer Pack的實做套件之一,Sun官方預計在即將釋出的Java SE 6將其包裝在裡頭,因此到時候我們就不必再特地下載JAXB的實做套件了。
標籤:
JAVA
2011年2月24日 星期四
java錯誤:java.util.Calendar輸出月份不對的問題
使用java.util.Calendar類的方法get方法時,傳入Calendar的靜態變量Calendar.MONTH作為參數。
我們希望得到的結果是當前日曆的月份。
但是我得到的月份數值跟正常月份不符,調試結論:
java.util.Calendar輸出的年份和日期都是和現實一樣的。
唯獨月份的計數是從0開始的,比如當前的8月,會輸出數值7。
所以在計算時,需要+1處理。
(tC.get(Calendar.MONTH)+1),輸出即為正常月份
在做tC.set(Calendar.MONTH,2)時,月份的計數也是從零開始的,即當前月為3月,即寫入2。
我們希望得到的結果是當前日曆的月份。
但是我得到的月份數值跟正常月份不符,調試結論:
java.util.Calendar輸出的年份和日期都是和現實一樣的。
唯獨月份的計數是從0開始的,比如當前的8月,會輸出數值7。
所以在計算時,需要+1處理。
(tC.get(Calendar.MONTH)+1),輸出即為正常月份
在做tC.set(Calendar.MONTH,2)時,月份的計數也是從零開始的,即當前月為3月,即寫入2。
標籤:
JAVA
2011年1月27日 星期四
port 用途說明 (轉載)
port 用途說明
按埠號可分為3大類:
(1)公認埠(Well Known Ports):從0到1023,它們緊密綁定(binding)於一些服務。通常這些埠的通訊明確表明了某種服務的協議。例如:80埠實際上總是HTTP通訊。
(2)註冊埠(Registered Ports):從1024到49151。它們鬆散地綁定於一些服務。也就是說有許多服務綁定於這些埠,這些埠同樣用於許多其他目的。例如:許多系統處理動態埠從1024左右開始。
(3)動態和/或私有埠(Dynamic and/or Private Ports):從49152到65535。理論上,不應為服務分配這些埠。實際上,機器通常從1024起分配動態埠。但也有例外:SUN的RPC埠從32768開始。
0 通常用於分析作業系統。這一方法能夠工作是因為在一些系統中“0”是無效埠,當你試圖使用一種通常的閉合埠連接它時將產生不同的結果。一種典型的掃描:使用IP位址為0.0.0.0,設置ACK位元並在乙太網層廣播。
1 tcpmux TCP Port Service Multiplexer 傳輸控制協定埠服務多路開關選擇器
2 compressnet Management Utility compressnet 管理實用程式
3 compressnet Compression Process 壓縮進程
5 rje Remote Job Entry 遠端作業登錄
7 echo Echo 回顯
9 discard Discard 丟棄
11 systat Active Users 線上用戶
13 daytime Daytime 時間
17 qotd Quote of the Day 每日引用
18 msp Message Send Protocol 消息發送協定
19 chargen Character Generator 字元發生器
20 ftp-data File Transfer[Default Data] 檔傳輸協定(默認資料口)
21 ftp File Transfer[Control] 檔傳輸協議(控制)
22 ssh SSH Remote Login Protocol SSH遠端登錄協定
23 telnet Telnet 終端仿真協定
按埠號可分為3大類:
(1)公認埠(Well Known Ports):從0到1023,它們緊密綁定(binding)於一些服務。通常這些埠的通訊明確表明了某種服務的協議。例如:80埠實際上總是HTTP通訊。
(2)註冊埠(Registered Ports):從1024到49151。它們鬆散地綁定於一些服務。也就是說有許多服務綁定於這些埠,這些埠同樣用於許多其他目的。例如:許多系統處理動態埠從1024左右開始。
(3)動態和/或私有埠(Dynamic and/or Private Ports):從49152到65535。理論上,不應為服務分配這些埠。實際上,機器通常從1024起分配動態埠。但也有例外:SUN的RPC埠從32768開始。
0 通常用於分析作業系統。這一方法能夠工作是因為在一些系統中“0”是無效埠,當你試圖使用一種通常的閉合埠連接它時將產生不同的結果。一種典型的掃描:使用IP位址為0.0.0.0,設置ACK位元並在乙太網層廣播。
1 tcpmux TCP Port Service Multiplexer 傳輸控制協定埠服務多路開關選擇器
2 compressnet Management Utility compressnet 管理實用程式
3 compressnet Compression Process 壓縮進程
5 rje Remote Job Entry 遠端作業登錄
7 echo Echo 回顯
9 discard Discard 丟棄
11 systat Active Users 線上用戶
13 daytime Daytime 時間
17 qotd Quote of the Day 每日引用
18 msp Message Send Protocol 消息發送協定
19 chargen Character Generator 字元發生器
20 ftp-data File Transfer[Default Data] 檔傳輸協定(默認資料口)
21 ftp File Transfer[Control] 檔傳輸協議(控制)
22 ssh SSH Remote Login Protocol SSH遠端登錄協定
23 telnet Telnet 終端仿真協定
2010年12月29日 星期三
用 Java 做簡單的 Thread pool
以往用 Java 寫 Thread Pool 並不是簡單的事,不過在 JavaSE 5.0 裡,用幾行 code 就可以:
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
public class TestExecutor {
public static class Command implements Runnable {
private int id;
public Command(int id) {
this.id = id;
}
public void run() {
System.out.println(id + " Begin " + Thread.currentThread().getName());
try {
Thread.sleep(3000);
}
catch (InterruptedException ex) {
ex.printStackTrace();
}
System.out.println(id + " End " + Thread.currentThread().getName());
}
}
public static void main(String[] args) {
Executor tp = Executors.newFixedThreadPool(3);
tp.execute(new Command(1));
tp.execute(new Command(2));
tp.execute(new Command(3));
tp.execute(new Command(4));
tp.execute(new Command(5));
}
}
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
public class TestExecutor {
public static class Command implements Runnable {
private int id;
public Command(int id) {
this.id = id;
}
public void run() {
System.out.println(id + " Begin " + Thread.currentThread().getName());
try {
Thread.sleep(3000);
}
catch (InterruptedException ex) {
ex.printStackTrace();
}
System.out.println(id + " End " + Thread.currentThread().getName());
}
}
public static void main(String[] args) {
Executor tp = Executors.newFixedThreadPool(3);
tp.execute(new Command(1));
tp.execute(new Command(2));
tp.execute(new Command(3));
tp.execute(new Command(4));
tp.execute(new Command(5));
}
}
標籤:
JAVA
訂閱:
文章 (Atom)