2008年12月15日 星期一
2008年11月5日 星期三
Fat-jar -- 把全部的jar打包成一個可以執行的jar包含lib
會跳出一個輸入對話窗,要求plugin的名字和更新的來源,輸入如下:
Name: Fat Jar
URL: http://kurucz-grafika.de/fatjar
它就會幫你全部打包成一個xxx.jar檔,並放置於你的Project的根目錄下。
這個xxx.jar檔無論放在什麼位置,應該都是雙點便可執行的。
也可以在console下輸入java -jar xxx.jar 來執行它。
Reference:
http://redbug.twbbs.org/index.php/2008/07/28/397
Java World
http://www.javaworld.com.tw/jute/post/view?bid=20&id=111801&sty=1&tpg=1&age=0
2008年10月5日 星期日
linux ln (Symbolic Link)用法
[root@linux ~]# ln [-sf] 來源檔 目標檔
參數:
-s :如果 ln 不加任何參數就進行連結,那就是hard link,至於 -s 就是symbolic link
-f :如果 目標檔 存在時,就主動的將目標檔直接移除後再建立!
範例三:將 /tmp/passwd 建立一個符號連結,(passwd 為要指定之路徑資料夾,passwd-so 為產生出來之link名稱)
[root@linux tmp]# ln -s passwd passwd-so
[root@linux tmp]# ls -li passwd*
1242760 -rw-r--r-- 2 root root 1746 Jun 29 01:03 passwd
1242760 -rw-r--r-- 2 root root 1746 Jun 29 01:03 passwd-hd
1242806 lrwxrwxrwx 1 root root 6 Jul 23 20:02 passwd-so -> passwd
# 仔細看喔,這個 passwd-so 指向的 inode number 不同了!這是一個新的檔案~
# 這個檔案的內容是指向 passwd 的,你可以看到這個檔案的大小,是 6bytes ,
# 怎麼來的?因為 passwd 共有六個字元啊!哈哈!沒錯~這個連結檔的內容只是填寫
# 連結的目標檔案檔名而已!所以,你的連結檔檔名 (有時候含路徑) 有多長,檔案就多大!
參考網址:
http://tw.myblog.yahoo.com/up-station/article?mid=124&prev=130&next=123&page=1
2008年7月29日 星期二
WebSphere 中配置 DB
1.設立環境變數:
ORACLE_JDBC_DRIVER_PATH : (如:C:\oracle\ora92\jdbc\lib)
2.JDBC 提供者
變更類別路徑 (${ORACLE_JDBC_DRIVER_PATH}/classes12.jar)
3.資料來源
設定URL 例如:jdbc:oracle:thin:@127.0.0.1:1521:estore
4.在資料來源功能中,點選右邊自訂內容選項
修改driverType :oracle.jdbc.driver.OracleDriver
databaseName : estore
serverName : localhost
新建 user :xxx
password : XXXX
5.儲存設定
6.測試連線
7.重新啟動WebSphere
引用http://www.matrix.org.cn/thread.shtml?topicId=30665&forumId=40
(二)、SQL server连接池的配置
SQL Server连接池的配置步骤同Oracle,具体的参数值:
JDBC 提供程序:下拉选择Microsoft JDBC driver for MSSQLServer 2000
Sybase连接池的配置步骤也同Oracle,具体的参数值:
常规属性中的名称:Microsoft JDBC driver for MSSQLServer 2000
常规属性中的描述:Microsoft JDBC driver for MSSQLServer 2000
常规属性中的类路径:
${ORACLE_JDBC_DRIVER_PATH}/msbase.jar
${ORACLE_JDBC_DRIVER_PATH}/mssqlserver.jar
${ORACLE_JDBC_DRIVER_PATH}/msutil.jar
常规属性中的实现类名:默认
数据源中的名称:SQLSERVER_JNDI
数据源中的JNDI:SQLSERVER_JNDI
定制属性中的databaseName:数据库名称
定制属性中的serverName:Sybase数据库服务器的名称或IP
定制属性中的portNumber:端口号
定制属性中的preTestSQLString:SELECT COUNT(1) FROM TEST
同Oracle,手工“新建”user和password属性,值为数据库的用户名和口令,该用户的缺省数据库必须为databaseName的值。
其他默认。
(三)、Sybase连接池的配置
JDBC 提供程序:下拉选择Sybase JDBC Driver
Sybase连接池的配置步骤也同Oracle,具体的参数值:
常规属性中的名称:SYBASE JDBC Driver
常规属性中的描述:SYBASE JDBC Driver
常规属性中的类路径:${ORACLE_JDBC_DRIVER_PATH}/jconn2.jar
常规属性中的实现类名:默认
数据源中的名称:SYBASE_JNDI
数据源中的JNDI:SYBASE_JNDI
定制属性中的databaseName:数据库名称
定制属性中的serverName:Sybase数据库服务器的名称或IP
定制属性中的portNumber:端口号
定制属性中的preTestSQLString:SELECT COUNT(1) FROM TEST
同Oracle,手工“新建”user和password属性,值为数据库的用户名和口令,该用户的缺省数据库必须为databaseName的值。
其他默认。
(四)、MySQL连接池的配置
MySQL连接池的配置步骤同Oracle稍有不同,JDBC 提供程序中并没有MySQL中的选项,选Oracle JDBC Driver就可以,实际运行中,WebSphere是以设置的参数为准的。
具体的参数值:
常规属性中的名称:MySQL JDBC Driver
常规属性中的描述:MySQL JDBC Driver
常规属性中的类路径:${ORACLE_JDBC_DRIVER_PATH}/mysql-connector-java-3.1.10-bin.jar
常规属性中的实现类名:com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
数据源中的名称:MYSQL_JNDI
数据源中的JNDI:MYSQL_JNDI
(一)、DB2连接池的配置
1.进入管理控制台(http://localhost:9090/admin/)
2. 指定 Java 2 连接器安全性使用的用户标识和密码的列表
在安全性->JAAS配置->J2C认证数据里新建
image
这里别名和用户标识都写db2inst1(就是登录DB2数据库的用户名和密码,别名可以任意.),密码写登录DB2数据库的密码。单击应用。
3.选择:资源->JDBC提供程序,点击“新建”,建立JDBC提供程序。
image
点击“应用”后,在类路径中,“${ORACLE_JDBC_DRIVER_PATH}/db2jcc.jar”,"${UNIVERSAL_JDBC_DRIVER_PATH} /db2jcc_license_cu.jar", "${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license_cisuz.jar"三个文件,只要第一个文件路径要配置对(可以写成绝对路径),其他两个文件可以去掉,如图,再点击“应用”,然后保存,再保存。
image
4.定义数据源
点击界面中“数据源后”再点击“新建”,建立数据源。
image
这里名称写dbsource,JNDI名是jdbc/dbsource,注意JNDI名必须是上述格式,否则可能连接不上DB2数据库。组件受管认证别名和容器受管的认证别名都选择在安全性->JAAS配置->J2C认证数据里新建的选项。点击应用。
image
4.界面上点击“定制属性”,定义连接池的databasename信息。
databasename的值修改为DB2数据库里的数据库名。
点击“确定”保存配置。
其余的取默认值。
image
參考網址
http://www.matrix.org.cn/thread.shtml?topicId=30665&forumId=40
http://www.ibmdatabasemag.com/showArticle.jhtml?articleID=191600717
http://blog.csdn.net/mfkzj/archive/2006/04/29/697147.aspx
2008年7月22日 星期二
利用XMLBean寫XML
http://xmlbeans.apache.org/documentation/conInstallGuide.html
首先設定環境變數
Windows Setup
On Windows, do the following:
- Right-click My Computer, then click Properties.
- On the Advanced tab, click Environment Variables.
- Add an XMLBEANS_HOME variable whose value is the XMLBeans location.
For example, if you downloaded the XMLBeans release to the root of your C drive, this might be c:\xmlbeans-1.0.2.
- Edit the PATH variable so that it includes the bin directory of your XMLBeans installation. For the XMLBeans release, you could add %XMLBEANS_HOME%\bin.
- Edit the CLASSPATH variable to include the xbean.jar included with XMLBeans.
This is located in the lib directory. If you built XMLBeans from source, you can also use the JAR file in the build/ar or build/lib directories.
- For XMLBeans V2, also include the jsr173_1.0_api.jar (or jsr173_api.jar, whichever one came in your download) to the CLASSPATH variable.
This is found in the lib (or build/lib if you built XMLBeans from source) directory.
準備配置文件(文件customer.xsdconfig) 內容如下
建立XML Schema文件(customer.xsd)內容如下
利用scomp產生Java Classes ,語法如下
scomp [options] [dirs]* [schemaFile.xsd]* [service.wsdl]* [config.xsdconfig]*
主要参数说明:
-src [dir] -- 生成的Java Classes存放目录
-srconly -- 不编译Java Classes,不产生Jar文件
-out [jarFileName] -- 生成的Jar文件,缺省是xmltypes.jar
-compiler -- Java编译器的路径,即Javac的位置
schemaFile.xsd -- XML Schema文件位置
config.xsdconfig -- xsdconfig文件的位置, 这个文件主要用来制定生成的Java Class的一些文件名规则和Package的名称,在本文,package是sample.xmlbean
在此用的例子如下:
F:\>scomp -src build\src -out build\customerXmlBean.jar customer.xsd -compiler C:\Program Files\Java\jdk1.6.0_02\bin\javac customer.xsdconfig
將生成的customerXmlBean.jar加入到Project的ClassPath.
新建一各Java Class: CustomerXMLBean. 如下:
package com.sample.reader;
import java.io.File;
import sample.xmlbean.*;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.xmlbeans.XmlOptions;
public class CustomerXMLBean {
private String filename = null;
public CustomerXMLBean(String filename) {
super();
this.filename = filename;
}
public void customerReader() {
try {
File xmlFile = new File(filename);
CustomersDocument doc = CustomersDocument.Factory.parse(xmlFile);
CustomerType[] customers = doc.getCustomers().getCustomerArray();
for (int i = 0; i < customer =" customers[i];" primaryaddress =" customer.getAddress().getPrimaryAddress();" billingaddress =" customer.getAddress().getBillingAddress();" filename = "F://JavaTest//Eclipse//XMLBean//xml//customers.xml" customerxmlbean =" new">
}
输出结果
Customer#0
Customer ID:1
First name:Jessica
Last name:Lim
Gender:female
PhoneNumber:1234567
PrimaryAddress:
PostalCode:350106
AddressLine1:#25-1
AddressLine2:SHINSAYAMA 2-CHOME
BillingAddress:
Receiver:Ms Danielle
PostalCode:350107
AddressLine1:#167
AddressLine2:NORTH TOWER HARBOUR CITY
Customer#1
Customer ID:2
First name:David
Last name:Bill
Gender:male
PhoneNumber:808182
PrimaryAddress:
PostalCode:319087
AddressLine1:1033 WS St.
AddressLine2:Tima Road
BillingAddress:
Receiver:Mr William
PostalCode:672993
AddressLine1:1033 WS St.
AddressLine2:Tima Road
參考網址
http://www.2ed.cn/Article-3-19078.shtml
2008年6月11日 星期三
安装BIN文件
chmod 755 xxx.bin——把bin 文件改成可執行的文件
參考網站
http://freesf.tnc.edu.tw/docs/rh/rhl-gsg-zh_TW-9/s1-navigating-ownership.html
所有權與權限
稍早在這個章節中,當您試著要轉換到 root 的登入目錄,您收到下列的訊息:
cd /root |
那就是 Linux 之安全性特色的一個示範。 Linux 就像 UNIX 一樣是一種多使用者的系統,而檔案的權限設定是一種用來保護系統以避免惡意的竄改。
當您被權限拒絕時,一個取得存取權的方法就是您之前所學的 su 到 root。 這是因為不管誰知道 root 的密碼,就能夠擁有完全的存取權限。
不過轉換為 superuser 並不總是那麼方便或一個好主意,因為這樣會很容易因為犯錯而更改了重要的設定檔案。
所有檔案與目錄都屬於建立它們的使用者所 "擁有"。 您建立 sneakers.txt 檔案 (請看 菴 13.9.1 節) 在您的登入目錄,所以 sneakers.txt 是 "屬於" 您的。
這表示您可以指定誰能讀取、寫入甚至執行這個檔案(如果該檔案是一個應用程式的話)。
讀取、寫入以及執行是三種主要的權限設定。 因為當建立使用者的帳號時,使用者被放置在群組中,您也可以指定是否某些群組可以讀取、寫入或執行檔案。
請使用 ls 指令加上參數 -l(請看 圖形 13-11)來更仔細的看看 sneakers.txt 檔案。
這裡提供了很多的資訊。 您可以看到誰可以讀取(r)、誰可以寫入(w) 這個檔案, 以及誰建立這個檔案(sam),還有擁有者屬於哪一個群組(sam)。 還記得嗎,您所屬群組的名稱是與您的登入名稱相同的。
其他在群組右邊的資訊包括大小以及檔案建立的日期與時間,還有檔名。
第一列顯示出目前的權限設定; 總共有十個位置。 第一個位置代表檔案的類型。 其餘的九個位置實際上是給三個不同類型使用者的三組權限設定。
舉例來說:
-rw-rw-r-- |
這三組是這個檔案的擁有者、這個檔案所屬的群組以及 "其他人" (代表系統上的其他使用者)。
- (rw-) (rw-) (r--) 1 sam sam |
用來指定檔案類型的第一個項目,會顯示下列的其中之一:
d — 一個目錄
-(破折號) — 一個一般的檔案(而不是目錄或連結)
l — 一個符號連結到系統中的另一個程式或檔案
在第一個項目之後的三組設定中,您將會看到下列的其中之一:
r — 可以讀取的檔案
w — 可以寫入的檔案
x — 可以被執行的檔案(假如它是一個程式的話)
假如您在擁有者、群組或其他人的權限設定有看到一個破折號,這表示該權限不被允許。 再看一次 sneakers.txt 檔案的第一列來指出它的權限。
ls -l sneakers.txt |
這個檔案的擁有者(在此為 sam)有讀寫這個檔案的權限。 這個群組 (sam) 也有讀寫 sneakers.txt 檔案的權限。 因為它不是一個程式,所以擁有者或群組都沒有執行它的權限。
13.14.1. chmod 指令
可以使用 chmod 指令來輕易地更改權限設定。 這個例子顯示如何使用 chmod 指令來更改 sneakers.txt 檔案的權限設定。
原本的檔案看起來就像是這樣,它的初始權限設定是:
-rw-rw-r-- 1 sam sam 130 3月 12 23:16 sneakers.txt |
假如您是這個檔案的擁有者或您是以 root 帳號登入,您可以更改擁有者, 群組以及其他人的權限設定。
現在,擁有者與所屬群組可以讀取與寫入這個檔案。 在這個群組之外的其他人只可以讀取這個檔案 (r--)。
| 警告 | |
|---|---|
請記得檔案的權限是一種安全的象徵。 每當您允許任何人來讀取、寫入與執行檔案,您正在增加檔案有可能被竄改、變更甚至刪除的風險。 原則上,您只應該允許讀寫權限給真正需要它們的人。 |
在下列的例子中,您想要允許所有人來寫入這個檔案,所以他們可以讀取、寫入並儲存它。 這表示您必須要更改檔案權限中 "其他人" 的部份。
讓我們先看一下這個檔案。 在 shell 提示符號下輸入:
ls -l sneakers.txt |
前面這個指令顯示了檔案的資訊:
-rw-rw-r-- 1 sam sam 130 3月 12 23:16 sneakers.txt |
現在,再輸入下列的指令:
chmod o+w sneakers.txt |
這個 o+w 指令告訴系統您想要給予其他人寫入 sneakers.txt 檔案的權限。 如要檢查結果,再將這個檔案的資訊列出。 此時,這個檔案應該就像這樣:
-rw-rw-rw- 1 sam sam 130 3月 12 23:16 sneakers.txt |
現在,所有人都可以讀寫這個檔案了。
如要從 sneakers.txt 移除讀寫的權限,可以使用 chmod 指令來一併拿走讀取與寫入的權限。
chmod go-rw sneakers.txt |
藉由輸入 go-rw,您正在告訴系統從 sneakers.txt 移除群組與其他人的讀取與寫入權限。
結果看起來會像:
-rw------- 1 sam sam 130 3月 12 23:16 sneakers.txt |
當您要使用 chmod 指令來更改權限設定時,您可以將這些設定當作一種簡略的表達方式,因為您所要做的事就是記得一些符號與字母來使用 chmod 指令。
這裡是這些簡略表達方式所代表意思的清單:
- 身份認定
u — 擁有這個檔案的使用者(就是擁有者)
g — 該使用者所屬的群組
o — 其他人(非擁有者或擁有者所屬的群組)
a — 所有人或全部 (u, g 與 o)
- 權限設定
r — 讀取權限
w — 寫入權限
x — 執行權限
- 動作
+ — 增加權限
- — 移除權限
= — 使之成為唯一的權限
想要測試您的權限設定技術嗎? 從 sneakers.txt 移除所有人的權限。
chmod a-rwx sneakers.txt |
現在,看看是否您可以使用 cat sneakers.txt 指令來讀取這個檔案,您應該可以看到以下的輸出:
cat: sneakers.txt: 拒絕不符權限的操作 |
移除掉包括您自己的所有權限將會成功的鎖定該檔案。 不過因為這個檔案屬於您的,您總是可以使用下列的指令將它的權限設回來:
chmod u+rw sneakers.txt |
請使用 cat sneakers.txt 指令來確認您(檔案的擁有者)可以再次的讀取這個檔案。
這裡是一些可使用在 chmod 的一般設定的例子:
g+w — 增加寫入的使用權給這個群組
o-rwx — 移除其他人的所有權限
u+x — 允許檔案的擁有者執行這個檔案
a+rw — 允許所有人來讀寫這個檔案
ug+r — 允許擁有者與所屬群組來讀取這個檔案
g=rx — 只讓這個群組讀取與執行(無法寫入)
藉由增加 -R 參數,您可以更改整個目錄樹的權限設定。
因為您不能真正 "執行" 一個目錄(像是在執行一個應用程式一樣),當您從一個目錄新增或移除執行權限時,您是在允許(或拒絕)搜尋這個目錄的權限。
假如您沒有允許其他人在目錄 tigger 有執行的權限,誰有讀取或寫入的權限將不重要。 沒有人可以進入這個目錄除非他們知道他們想要的確切檔案名稱。
例如,輸入:
chmod a-x tigger |
來移除所有人的執行權限。
當您試著要 cd 到 tigger 目錄時, 會發生此種情況:
bash: tigger: 拒絕不符權限的操作 |
再來,回復您自己與所屬群組的權限:
chmod ug+x tigger |
現在,假如您使用 ls -l 檢查您的工作,您將會看到只有其他人被拒絕存取 tigger 目錄。
13.14.2. 使用數字更改權限
記得 chmod 速記方法的參考嗎? 這裡有 另一種方式來更改權限,雖然一開始看起來有點複雜。
讓我們回到 sneakers.txt 原本的權限設定:
-rw-rw-r-- 1 sam sam 130 3月 12 23:16 sneakers.txt |
每一種權限設定都可以一個數值來代表:
r = 4
w = 2
x = 1
- = 0
當這些數值加在一起時,總和被使用來設定特定的權限。 例如,如果您想要讀取與寫入的權限,您將會有數值 6; 4(讀取)+ 2(寫入) = 6。
至於 sneakers.txt,這裡是它的數值權限設定:
- (rw-) (rw-) (r--) |
使用者的總和是 6,群組的總和是 6,以及其他人的總和是 4。 這個權限設定被解讀為 664。
假如您想更改 sneakers.txt 的權限設定,讓您所屬群組沒有寫入的權限,但仍可以讀取這個檔案,您可以從該組號碼中減掉 2 來移除這個權限。
這個數值將成為 644。
要實作這個新的設定,請輸入:
chmod 644 sneakers.txt |
現在將檔案列出來確認這個變更。 請輸入:
ls -l |
輸出應該為:
-rw-r--r-- 1 sam sam 130 3月 12 23:16 sneakers.txt |
現在,所屬群組與其他人都沒有寫入 sneakers.txt 檔案 的權限。 如要回復所屬群組的寫入權限,增加寫入 (w) 的數值 2 到第二組的權限數值即可。
chmod 664 sneakers.txt |
| 警告 | |
|---|---|
設定權限為 666 將允許所有人讀寫一個檔案或目錄。 設定權限為 777 將給予所有人讀寫以及執行的權限。 這些權限設定將允許竄改一些重要檔案,所以大體上來說,使用這些設定並不是個好主意。 |
這裡有一些一般的設定, 數值以及它們的含意:
-rw------- (600) — 只有擁有者有讀寫的權限。
-rw-r--r-- (644) — 只有擁有者有讀寫的權限; 而群組與其他人只能讀取。
-rwx------ (700) — 只有擁有者有讀寫以及執行的權限。
-rwxr-xr-x (755) — 擁有者有讀寫以及執行的權限; 而群組與其他人只能讀取與執行。
-rwx--x--x (711) — 擁有者有讀寫以及執行的權限; 而群組與其他人只能執行。
-rw-rw-rw- (666) — 所有人都可以讀寫這個檔案。(請特別小心這些權限。)
-rwxrwxrwx (777) — 所有人都可以讀寫與執行這個檔案。(再次叮嚀,這種權限設定是很危險的。)
這裡有一些目錄的一般設定:
drwx------ (700) — 只有使用者可以讀取與寫入這個目錄。
drwxr-xr-x (755) — 每個人都可以讀取這個目錄,但使用者與其群組有讀取與執行的權限。
2008年6月10日 星期二
放置『我的電腦』等圖示
1. 由 系統(System) → 偏好設定 → Main Menu,可更改主選單
2.「Main Menu」編輯視窗中,左欄找到「系統工具」,右方勾選「組態編輯器」
3.再由 應用程式 → 系統工具 → 組態編輯器,點選「組態編輯器」視窗左欄的 apps,再點選 nautilus ,再選 desktop。右方勾選你想要出現在桌面上的圖示。
參考網站
http://wiki.ubuntu.org.tw/index.php/Ubuntu_%E6%A1%8C%E9%9D%A2%E5%85%A5%E9%96%80#.E6.94.BE.E7.BD.AE.E3.80.8E.E6.88.91.E7.9A.84.E9.9B.BB.E8.85.A6.E3.80.8F.E7.AD.89.E5.9C.96.E7.A4.BA