利用Eclipse製作可執行jar run

寫好java application之後,要執行時可以直接使用java.exe來執行classes,另外還有幾種方式也可以執行,像是Web Start run或是jar run等等,只需要使用jar.exe來打包所有classes就可以了,而在Eclipse上要打包jar檔更是方便,只需要利用匯出精靈幾個步驟就可以完成了。jar其實也是一種zip壓縮檔。

利用範例[Java]SiteMap Creater-簡單的SiteMap建立程式來匯出產生jar run。

打開Eclipse後,在要執行jar檔的專案根目路上按右鍵選則Export

SiteMapToJar1.png

選擇要匯出的java檔,要能夠執行jar run需要把含有main的java檔一起選取

設定要匯出的路徑及檔案名稱

SiteMapToJar2.png

Read More

[Java]SiteMap Creater-簡單的SiteMap建立程式

SiteMapCreater主要的功能在自動產生SiteMap.xml,只需要在資料庫表格裡建立所要產生的SiteMap網址等資訊就可以執行它來自動產生需要的SiteMap而提交給Google或yahoo等搜尋引擎。

這個程式主要是獨立作業的,可以利用windows或是linux的排程來執行jar run就可以了,這樣子可以減少對伺服器的負擔。

程式的作法是從資料庫取得資料,再把資料加上xml需要的字串,然後最後輸出成檔案就可以了,中間有些需要注意的地方,像是筆數不可太多,此程式設定4000筆會換一個檔案名稱,還有檔案也不可超過太大,8mb以下或更小。

執行後會得到以下檔案,一個index的Sitemap.xml及實際的內容的Info0.xml,另外還需要一個xsl來當讀取樣版的準則,向搜尋引擎只需要提交Sitemap.xml這個檔案就可以了,程式還會自動把所有檔案變成一個zip檔,google可以提交zip檔案做為SiteMap,不過此部份並未成功,有興趣的朋友可以再加以改進。

SiteMap1.png

Read More

[Java]利用URLConnection檢查網站狀態

java.net.URLConnection是一個Http Connecion物件,可以用來連接網站,並處理回傳的資訊資料,當然也可以使用socket連線來做這些事情,不過會顯的麻煩多了。

利用java.net.URLConnection可以直接取得response的Status來判斷網站是不存在、連線錯誤、無法存取,而如果需要更詳細的回傳資訊可以增加給於的Header。而如果需要取得網址的ip則可使用java.net.Inet4Address.getByName(網址名稱)

有一點要注意的是在JDK1.4以前並有沒有setReadTimeout這個函數,所以需要自己實作一個HttpURLConnectionTimeout來操作TimeOut,可以參考Adding Socket Timeout to java.net.URLConnection這一篇。

這是範例的結果:

char.png

Read More

[Android]Google Maps的申請、設定與使用

行動設備使用Location定位服務越來越火紅,很多人都有很多有趣的想法,像是利用Location查詢所在位置四週的商家資訊、將照片置入所在位置的經緯度方便分享及記錄、還有隨時可以追蹤好友所在位置等等等許多服務。雖然有了定位資訊,可是少了一個展示的平台,Google Map就是一個很好用又免費的元件,可以把經緯資訊展示出地圖資訊,方便閱讀及應用。

在android開發環境上要使用google map這個元件,並無法直接拖拉元件至畫面上,需要申請一組api key,然後設定到Layout資源檔裡,以下範例簡單的說明如何申請一組google map api key及設定Layout檔main.xml。

參考資料Location and Maps | Android Developers

1.如何申請指紋碼

要向Google申請服務的指紋碼,需要先在本機端產生MD5的指紋證書,再利用這個證書產生指文碼。

如何產生指紋證書呢?只需要在jdk的安裝路經bin目錄下,輸入

keytool -genkey - v -keystore 名稱.keystore

其中”名稱.keystore"請自行設定喜好的名稱,再來畫面會要求你輸入一些基本資訊,大概內容如下圖,密碼部份這個範例為test123。名稱姓氏、單位名稱、組織名稱、城市或地區名稱、州及省份名稱、國碼

產生keystore

Read More

[Java]利用迴圈印數字列

這是很多在學習Java都會遇到的作業,常在各大論談都有人提出,不過即然是作業了,應該自己學習來的好,可是老師一成不變的作業也說不過去是吧,這裡就提供了數種老師常會用來當作業的迴圈習題,像是印1 2 3 4 5 ,或是印* 星號等,有遇到就再補上。

印出1到5,5到1的數列,每一行內容為1到該行的數字長

1.png

利用數學式子,運算出1-5及5-1二種不同方向的數,再利用另一個迴圈印出該行的數列長,其中(i+1)/5 是取除5的整數,而(i + 1) %5 是取5的餘數。

程式碼如下:

        for(int i = 0 ; i < 9; i ++)
        {
            int d = java.lang.Math.abs((i +1)/5 *5  - (i +1)%5);
            System.out.print(" ");
            for(int j = 0 ; j < d ; j ++)
            {
                System.out.print(j+1);
            }
            System.out.println();
        }

Read More