5/07/2012

設定JAVA_HOME on Mac OSX

對一個Java開發者而言手上應該有很多JDK要試,如何快速設定JDK相關變數?

  • open /Applications/Utilities/Java\ Preferences.app
  • 選擇優先要使用的JDK版本

  • 設定 $JAVA_HOME 自動化取得現在JDK路徑
  • vim ~/.bash_profile

    export JAVA_HOME=`/usr/libexec/java_home`

非常實用Tip!

1/09/2012

Rod Johnson: Things I Wish I’d Known

InfoQ: Things I Wish I'd Known

看完Springframework創始人Rod Johnson創業過程,有些想法真非常適合工程師要如何創業。

也對他的背景非常感到興趣;音樂博士 + 電腦專才所發展出來的Springframework或許滿值得研究!

個人是比較欣賞務實工作理念

1/04/2012

沉默ClassLoader

JVM環境中沉默英雄ClassLoader,無聲無息將Java Class載入至JVM讓程式能夠於JVM運行。

瞭解ClassLoader定義

The Java Classloader is a part of the Java Runtime Environment that dynamically loads Java classes into the Java Virtual Machine.[1] Usually classes are only loaded on demand. The Java run time system does not need to know about files and file systems because of class loaders. Delegation is an important concept to understand when learning about class loaders.

為什麼需要瞭解它

雖然在大部份時間我們並不需要去瞭解它,甚至不會感覺它的存在,但總是有一些特別的需求需要自行客制化ClassLoader。

  • 單純想瞭解它的運作
  • 程式可能存在網路某個地方與不同存取協定
  • 能夠在運作時重新載入程式(jar, class) JRebel
  • 安全性考量用來載入特殊格式(加密格式)
  • 御載(unload)程式在某些極端因素考量下
  • 客制化