2012年5月30日 星期三

如何知道Java Class檔是使用那種版本的JDK complier出來的?

最近在試WebService的程式,希望能用來讓ERP系統串接其他系統使用,不過由於系統使用的是1.4.2的JDK…所以如果是太新的third party jar檔就無法使用
所以就引發了一個問題…如果什麼都沒寫連META-INF也都沒有…要怎麼知道這個Class是用那個Version的JDK生的?
Google了一下,其實方法不難…將該class檔用16進位的軟體讀出來就可以知道
查到的wiki中有說…找到第八個byte…
詳見下方的內容
J2SE 7    = 51 (0x33 hex),
J2SE 6.0 = 50 (0x32 hex),
J2SE 5.0 = 49 (0x31 hex),
JDK 1.4   = 48 (0x30 hex),
JDK 1.3   = 47 (0x2F hex),
JDK 1.2   = 46 (0x2E hex),
JDK 1.1   = 45 (0x2D hex).
要看的是0x後面紅色的部分(因為是使用16進位來看)
如果找到的是2E…那對應過去就是JDK 1.2版的依此類推…
如此一來就算只有class檔…也能分辨出來是使用那個版本的JDK 生出來的

reference
http://en.wikipedia.org/wiki/Class_%28file_format%29#General_layout

2012年5月14日 星期一

Apple iPad Camera Connection Kit無法讀照片的原因

之前媽媽的朋友家的小孩買了 iPad Camera Connection Kit,讓她能方便的直接將相機裡的照片轉到ipad中,這東西實在是方便,但也帶來了不便…
某天,該位朋友打給我說照片從別人那邊copy回來都無法放入ipad
我到他家也試了好久…google才發現原來事有奚翹
由於他自朋友那邊copy過來的檔名已經變了所以才無法讀取
原因是…不管什麼相機照出來的圖片檔名前面一定是八碼

EX:00000001.jpg

由於他copy過來的檔名已經被更動,所以ipad認為那不是相機拍出來的照片,所以就不會去理他(就算他是圖檔)

所以解法很簡單,找個重新命名的軟體將照片全部重新命名成八碼長度就可以讓ipad順利讀取啦

更新:記得要放到DCIM的資料夾中才能被讀取到

2012年4月19日 星期四

GIT好好玩

其實很早就聽過git這個版本控制軟體,但一直沒有去認真研究,直到這次參加osdc…才驚覺自己好像沒跟上這次的潮流…所以就開始學習關於git 和github的相關控制。還好之前有玩過cvs和svn…所以再學習git還滿快就上手的,只是玩了git真的會發現他的好…
這篇沒打算做相關的教學,只是要memo一下找到一些不錯的文章和slide

littlebtc寫給大家的Git教學 <-其實這個slide就介紹的滿完整的

ihower大大的Git and Github 演講投影片<-內有相關的系列文,還滿值得一看的

Git 初學筆記 - 指令操作教學  <-說明git必學的指令集

GIT Book

github help

2012年4月18日 星期三

DB2系列:db2batch 的使用

在DB2中,如果需要評估SQL語法的效能,可以使用db2batch,相關參數說明如下

-d  dbname 資料庫名稱
-a username/password 帳號密碼
-f Filename 內容放SQL語法
-o 0 <-不輸出結果
p 2 <-顯示cpu的效能與執行時間

串起來長這樣
db2batch -d dbname -a username/password -f test.sql -o 0 p 2

不過需要有DB2的系統管理權的帳號才行使用

使用上很簡單,但要注意DB2版本的問題!!!
http://www-01.ibm.com/support/docview.wss?uid=swg1IY91197
剛好local裝的是V9.1
Server裝的是8.2
上面的解法是到Server 執行或是local改裝8.2的版本(換句話說就是在V9.1上是無解= =a)


reference
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/core/r0002043.htm

2012年3月5日 星期一

透過JDBC存取AS400的資料

在某天上班時,逛JavaWorld時正好看到這篇,發現到內有存取AS400的JDBC可使用,就去google了一下,找到了JTOpen這個IBM提供的tool...以下為實做與說明
自上述連接中下載 ,並解壓縮。裡面會有個lib的folder...這次需要的是jt400.jar這個jar 檔
將這個jar 檔放入專案中的Build path中
再來只要import進來

import com.ibm.as400.access.AS400JDBCDriver;

下面是連接AS400的語法

DriverManager.registerDriver(new AS400JDBCDriver());
Class.forName("com.ibm.as400.access.AS400JDBCConnection");
Connection conn = DriverManager.getConnection("jdbc:as400://"+YOUR AS400 IP, UserName, Password);

做完上述就能取得Connection,接下來就是和平常使用資料庫控制的方式一樣

其實設定的方式和一般資料庫的設定沒什麼差別,比較特別的地方應該是在對於table 控制的名稱 說明如下:
在AS400中
Library / Filename  <=來指定一個Table

而在JTOpen中
Library . Filename  <=來指定一個Table

此外…如果要對AS400中的某個member做讀寫,必需透過alias來完成
create alias AliasName For  Library.Filename(Member) 

當然,使用完後最好drop掉…不然AS400中會多一堆DDM File

2012年3月3日 星期六

重新開張!!!

        其實還是比較多的時間想說使用plurk來記錄自已平時做的事,但現在才發現不對,因為這類的微網誌無法記錄比較詳細的過程,又受Max和學弟的影響,所以決定重新回來這邊寫文章,好好的把自己在公司或是在網路上學習到的相關技術來分享,也會將之前寫過的東西慢慢的分享到這個Blog中…如內容寫的有問題,請大大們不吝指導!!!

2011年1月28日 星期五

花博參觀攻略

其實就是自已參觀花博的過程啦…還說不上什麼太屌的方式

星期五早上六點半去排夢想館預約卷(後來拿到是十二點二十四的梯次)

拿到卷後…進花博看外場的花…造景ㄚ…拍拍照的…慢慢走向新生的美食區

大約十點半到新生的美食區用餐(這時侯的人不多,所以也還算快)

吃完後,再到園區外拍照…(還滿多不同的花可以拍的)

再來就是十二點進夢想館…(出來後…大約一點多)

再排旁邊幾米的影片…(大約要排一個小時)

他的內容雖然短短十三分鐘的影片…但整個拍攝的過程不簡單喔…(之後會補說為什麼)

我同學的blog有圖…如果等不急的人可以先去看XD
以下之後再補