Archive

‘專業技術’ 分類過的Archive

如何找尋電腦唯一值 for Java

2010年1月11日 尚無評論

最近有需要找到電腦的唯一值來處理 (就是要如何鎖主機啦)

首先,能當一台電腦的唯一值(unique id) 應該就是主機版的ID,CPU ID,及網路卡的MAC
在JAVA API 裡翻了很久,就是找不到有這類型的資訊,頂多只能拿到相關的環境變數

在網路上找了一些方式,果然,現行JAVA標準的API 似乎是沒有提供這資訊
整理好分享給大家

如果就只要找到唯一值,最完整的解決方式,可以參考
http://johannburkard.de/software/uuid/

他提供的元件,就是實作各平台如何取到電腦的唯一值,所以只要用一種方式
就可以在各平台上運行,這也是JAVA的宗旨呀!!

不過,他使用的似乎是網卡的MAC,如果電腦換了網卡似乎就出了問題
所以如果很在意的,就只能用CPU ID 或是主機板 ID 來當唯一值

如果是主機板ID,以下有兩篇文篇是有提到如何查到這ID,不過都要透過其它的程式取得
1.這篇寫的很完整,連JAVA Code都有了,就是呼叫一隻vbs幫忙取得資計
http://www.rgagnon.com/javadetails/java-0580.html

不過要注意,這vbs程式只適用32 bit 的windows平台,所以非所有的windows 都可以使用,所以要使用前請評估細。

2.這篇是提到在.NET時如何取得CPU ID 及主機板 ID,變的更簡單了就像下SQL 指令一樣。不過,如要讓JAVA透過此方式取得這些資訊,就要再多花點時點做API了而且還要先裝.Net Framework才行
http://codeglobe.blogspot.com/2009/02/how-to-retrieve-processoridmotherboard.html

上述只能在windows 平台上運行正常,如果你的程式只在windows上運行就沒什麼差別
但如果你的程式是想跨平台執行的,就可能自己要再多花些工夫啦

而再來要介紹有一GNU License 套件 可以在其它平台取得相關所需的資訊,就是dmidecode,目前他支援的平台如下:

  • Linux i386, x86-64, ia64
  • FreeBSD i386, x86-64
  • NetBSD i386, x86-64
  • OpenBSD i386
  • BeOS i386
  • Cygwin i386
  • Solaris x86

  • 該官網在此
    http://www.nongnu.org/dmidecode/ ,他可以取得的系統資訊約有39 種,列表如下:

  • Type   Information
          —————————————-
             0   BIOS
             1   System
             2   Base Board
             3   Chassis
             4   Processor
             5   Memory Controller
             6   Memory Module
             7   Cache
             8   Port Connector
             9   System Slots
            10   On Board Devices
            11   OEM Strings
            12   System Configuration Options
            13   BIOS Language
            14   Group Associations
            15   System Event Log
            16   Physical Memory Array
            17   Memory Device
            18   32-bit Memory Error
            19   Memory Array Mapped Address
            20   Memory Device Mapped Address
            21   Built-in Pointing Device
            22   Portable Battery
            23   System Reset
            24   Hardware Security
            25   System Power Controls
            26   Voltage Probe
            27   Cooling Device
            28   Temperature Probe
            29   Electrical Current Probe
            30   Out-of-band Remote Access
            31   Boot Integrity Services
            32   System Boot
            33   64-bit Memory Error
            34   Management Device
            35   Management Device Component
            36   Management Device Threshold Data
            37   Memory Channel
            38   IPMI Device
            39   Power Supply

    如果有需要的人,請自行找Google大師查詢一下囉!!
    在此要特別說一下,如果你下 –t 是出現 「  No such file or directory 」就是你Linux 老舊啦,小弟的測試Linux平台就是太舊了,預設這個套件的版本太舊不認得 type 參數,請自行上網下載make就可以啦!!

  • Categories: JAVA Tags: , ,

    JSP EL pageScope的探討

    2009年12月27日 2 則評論

    在瞭解JSP EL 時,對於pageScope是比較有疑問的
    在實測後及上網查了相關文章,發現蠻多人都跟我有一樣的誤解

    首頁,EL  提出了數種使用範圍及生命週期不同的 EL隱含物件
    針對pageContext就提出了pageScope,requestScope,sessionScope,applicationScope

    一般大家除了pageScope之外的3個Scope,都能很容易理解,就分別同於基本script運用的request, session, application的getAttribute method ,但就pageScope而言,小弟第一印象以為就是JSP宣告的變數值
    如果你和小弟一樣有此看法,那就錯了…=.=||

    基本上,宣告的變數值是不能在EL中使用的(如可以請一定要指導一下小弟),要宣告pageScope就要使用

    pageContext.setAttribute(“key”, “this is a page value” , pageContext.PAGE_SCOPE);

    這樣才能設定成功,在此寫上一篇,讓也有同樣誤解的人,可以少花點時間

    Categories: JAVA Tags: , ,

    showModalDialog 在同視窗轉到下一頁

    2009年12月25日 尚無評論

    平常很少用window.showModalDialog 來開啟視窗,
    原因是他參數的傳遞及運用上,其實都蠻不順手的
    不過因為window.open目前在使用上,九成九都會被瀏覽器擋住
    所以還是只能轉用window.showModalDialog

    先前如果使用window.showModalDialog 如果要到下一頁,而就要在<head> 標籤之中加上

    <BASE target=”_self”>

    不然就會另跳視窗開啟這連結;不過發現在使用javascript 的location.href 轉到下一頁時,
    還是會另跳視窗,去查詢了一下是否有解法,才知在五六年前早就有解法
    真是孤陋寡聞呀!!

    只要有和小弟一樣的需求,可以改成用以下方式就可以在showModalDialog連到下一頁

      <script>  
      window.name=”__self”;  
      window.open(“yoururl”,”__self”)  
      </script>

    而且很有趣的,這樣並不會被瀏覽器擋住,看來這問題是迎刃而解了

    Categories: WebDesign Tags: ,

    CSS 置中text-align: center 在Firefox無法作用

    2009年12月10日 2 則評論

    最近常在用CSS設定頁面
    忽然發現一個很簡單的置中,在IE是正常的但竟然Firefox不支援

    text-align: center;

    不過想這種問題應該很多人都有解決方法了,去查了一下
    找到自己覺得最好的解答,如下:

    #center {
    text-align: -moz-center;
    !text-align: center;
    }

    這樣不管是IE或是Firefox都可以支援了!!
    不知是哪一個瀏覽器沒照規格來~~@@

    又在chrome試了一下~~不OK吶,目前找不到解法!!所以先hold住 有找到再補上囉!!

    參考資訊:
    text-align: center; not working in Firefox

    Categories: WebDesign Tags: , ,

    Eclipse 3.5 特性說明

    2009年12月9日 尚無評論

    近日才發現自已常用的Eclipse工具似乎已經好久沒更新了,去看了一下版本才發覺目前使用的版本在3.3左右

    而到Eclipse官網查看一下,原來在2009年6月底 已經出到3.5了 (匿稱叫做Galileo , 伽利略) ,而先前版本的發佈歷程如下:

    2006年6月30日:Callisto(卡利斯托,3.2)
    2007年6月29日:Europa(歐羅巴,3.3)
    2008年6月25日:Ganymede(蓋尼米得,3.4)

    當然資訊人的特點就是要使用新版本,不管好不好用,新版的就是對了啦~哈~~哈
    不過在使用前,還是查詢了一下3.4 及3.5到底改了什麼,不然等換了之後 原本的功能不能用再加上效能變差就糟糕了!!

    3.4 Version 新特性(網路最多人介紹的)

    • 已將SVN列入Collaboration的支援,這需要透過內建的Software Updates and Add-ons手動加裝SVN Team Provider
    • Plug-in Spy:在任何界面下按Alt+Shift+F1 ,就可以看到Eclipse用來實現當前選中界面的類別。
    • 麵包屑(breadcrumb):其實就是當前類別到專案(project)的路徑,其中包括包和文件夾。另外,使用者還可以自由地在同一路徑下的某個節點處,縱向切換到其他元素
    • 快速協助(Quick Fix and Quick Assist) :針對有問題的代碼,只要鼠標移動上去,就能提示解決方案信息;只要在任何代碼處,按 ctrl + 1,就有可能出現相關的提示,預測你的下一步動作。
    • 按保存時,自動格式化代碼(分格式化全文和格式化修改的代碼),省略了要再按ctrl + shift + f 。
    • 當前元素的反白高亮功能,根據元素是被引用還是賦值(讀或寫),來 區分 不同的顏色 。
    • annotation 增強了註釋的格式化
    • Junit 支持對線程內每個方法的調用時間輸出
    • 在outline裡,支持對同一個類別中,方法的重排序
    • 查找某個元素的調用層次,支持更多,更細的內容,包括成員變量訪問等,call hierarchy
    • 更多的搜索選項
    • 加強了debug 變量查看功能,不需要再按 ctrl + shift + i 來查看變量的值
    • 新增模擬服務端監聽的debug功能
    • 更清晰轉換jar包到插件項目:為了鼓勵eclipse插件開發用戶,不要使用已經被嵌套在其他項目裡的jar包

    3.5 Version 新特性(網路最多人介紹的)

    • 平台及UI

      • Solaris x86已經加入支持行列
      • Install New Software嚮導中的「Work with:」下拉框現在支持自動補全
      • 增加了一個新的介紹主題,叫做「Slate」
      • 打開的編輯器及多編輯器頁面間的切換更加容易(快捷鍵:Ctrl+PageDown/Ctrl+PageUp,Alt+PageDown/Alt+PageUp)
      • 為了快速關閉,現在可以安全地跳過清楚歷史這一步驟
      • 至於編輯器的常規提示框和對話框,或當前工作台窗口、表單現在可以在Mac Cocoa上使用
      • 應用程序在打印過程中或打開打印對話框時,可以選擇portrait或landscape模式
      • Eclipse富客戶端平台現在包含了一個OSGi聲明式服務(Declarative Services——DS)的實現
      • 你現在可以針對給定選項「釘住」屬性視圖
      • 一個新偏好頁,可以管理用於選擇工作區的啟動提示框
      • About對話框現在提供一種機制,讓plug-in可以給平台about對話框提供安裝頁面
      • Install New Software嚮導現在無需等待連接任何更新服務器就可以立即打開
      • 雙擊垂直折疊線(vertical folding line)可以折起折疊區域
      • 比較編輯器有幾處增強
      • 你現在可以在Debug視圖中快速切換掛起線程
      • 支持Cocoa和Cocoa上的OpenGL
      • 增加對FileTransfer類的支持,使得可以在Explorer和Nautilus文件管理器之間進行copy/paste操作
      • 對項目瀏覽器作出幾項改進
      • 文本編輯器現在支持塊選擇模式(也就是按列選擇或矩形塊選擇)
      • 你現在可以直接在Synchronize視圖中應用一個補丁
      • 在Eclipse中比較Word文檔變化,現在使用該Word比較功能支持把變化顯示為修訂

      Equinox

      • 增強Equinox DebugOptions API,以支持選項設置的動態變化
      • 增加一個新的debug跟蹤API——org.eclipse.osgi.service.debug.DebugTrace,以增強並簡化編寫debug跟蹤信息
      • OSGi R4.2核心規範給核心框架增加了一些小API
      • 新的Equinox並發API

      Plug-in開發環境

      • 有一個新的Target Platform State(目標平台狀態)視圖
      • 你現在可以創建並共享一個由軟件站點的軟件組成的目標定義
      • 新的Category Definition編輯器可以在輸出時用於給特性歸類
      • 你現在可以查看API相對於API基線的變化
      • 通過在菜單introspection mode裡調用plug-in Spy來查看關於菜單的信息
      • 增強OSGi Declarative Services (DS),以支持最新版的DS規範
      • 你現在可以從OSGi啟動配置中初始化產品定義
      • 有一個新的目標平台偏好頁面
      • PPlug-in export現在支持創建source bundles
      • Declarative Services現在支持最新版的OSGi declarative services規範(1.1)更新
      • PDE中的JAR signing支持擴展包含了對keypass的支持
      • 增強目標編輯器,以支持目標定義中的新特性
      • API工具現在可以分析系統類庫的使用情況及代碼訪問運行時不存在的成員時所產生的問題
      • 你現可以在非UI線程中啟動Junit Plug-in測試
      • Eclipse應用程序啟動配置現在支持啟動級別(start level)及自動啟動設置
      • Plug-in Registry視圖現在支持瀏覽OSGi服務
      • 給PDE/Build增加了一個新的擴展,可以使用戶從p2庫中獲取製品
      • API工具現在支持在接口上的兩個約束:@noimplement 和 @noextend。這就使得在不想直接實現一個接口的時候可以擴展它
      • 即使你已經增大了plug-in的主版本號,仍會被提示破壞API的改變
      • PDE增強了bundle及特性(feature)輸出,以把輸出的bundles/feature安裝到當前正在運行的工作台
      • 輸出特性、plug-in及產品時可以選擇binary cycles
      • PDE增加了declarative services工具,以幫助作者提供組件定義

      Java開發工具

      • NLS string hover現在有一個Open in Properties File動作
      • 在Caller模式下,調用層級(Call Hierarchy)現在有一個在上下文菜單中有一個Expand With Constructors動作
      • 當你在編輯器中輸入的時候,Java比較編輯器會更新其結構
      • 有一個新的toString()產生器
      • 為可覆蓋方法增加了一個Open Implementation鏈接,可以直接打開其實現
      • 編輯器與執行環境一致
      • Debug視圖現在提供了breadcrumb(麵包屑),顯示了當前活動的debug上下文
      • 可運行的JAR文件輸出嚮導還可以把所需的類庫打包進一個要輸出的可運行JAR文件,或打包進與緊挨著該JAR的一個目錄中
      • 當在寫一個分配表達式(allocation expression)時發生補全操作,內容助手現在可以提示一個類的可用構造方法
      • 如果檢測到無用代碼,編譯器現在可以發出警告
      • 類庫、變量或容器入口的路徑現在可以是與項目相關的任何位置
      • 在Jovadoc hover的頭部及Javadoc視圖中,現在都提供了引用其他類型和成員的鏈接
      • 隨該Eclipse發行的JUnit4版本更新為4.5
      • Javadoc視圖及hovers現在都支持{@inheritDoc}標籤並給覆蓋方法增加鏈接
      • 同一值的比較現在由編譯器檢測,默認情況下會發出警告

    大致上整理一下網路資訊,看來沒有多大的效能提升,但提供了更多友善度的調整,而從3.3 升上3.5 算是無痛升級啦,暫時還沒有遇到太大的問題!!

    參考資料:

    Categories: JAVA Tags: , ,
    分頁: 上一頁 1 2 3 ... 8 9 10 11 12 13 14 ... 26 27 28 下一頁