webrcp是sourceforge上的一個(gè)小項(xiàng)目,它使用java web start方式部署客戶(hù)端應(yīng)用到本地機(jī)上。
java web start本身是一個(gè)不錯(cuò)的部署方式,這個(gè)到?jīng)]什么好說(shuō)的。
webrcp有趣的地方在于,它本身其實(shí)只是相當(dāng)于一個(gè)容器的作用,你自己的應(yīng)用程序可以打成一個(gè)zip包,webrcp可以自動(dòng)把你的zip包下載到本地機(jī)上,并自動(dòng)解開(kāi)放到指定目錄下,然后自動(dòng)運(yùn)行你指定的主類(lèi)。
這樣的話,你就省卻了簽名,處理dll文件等一系列麻煩的事情。
webrcp本身很是簡(jiǎn)短,程序也很好懂,只不過(guò)我之前從沒(méi)有想過(guò),還可以有它這種解決方式。
它的程序中我看最有趣的是下面幾句
??????????? URLClassLoader classLoader = new URLClassLoader(getBootPath());
??????????? Class starterClass = classLoader.loadClass(STARTER_CLASS);
getBootPath()方法返回運(yùn)行你的主類(lèi)所需要的jar的url數(shù)組。
以前寫(xiě)程序大都是老老實(shí)實(shí)的,很少涉及到類(lèi)加載器這一塊,看到這里,真是為自己的孤陋寡聞而慚愧。
看了webrcp,我還有一個(gè)想法,我們無(wú)法要求用戶(hù)安裝我們需要的jre,可能用戶(hù)機(jī)器上只裝了jre1.2,而我們的應(yīng)用卻需要jre1.5。這樣的話,我們可以把jre和我們的應(yīng)用打包到一起,下載到本地機(jī)后,用我們自己的jre來(lái)啟動(dòng)應(yīng)用。這樣,只要求客戶(hù)機(jī)支持java web start就可以了,對(duì)客戶(hù)機(jī)的要求盡量減少到最小