JavaÀà¼ÓÔØÆ÷
Èç¹ûÄãÏë¶Ôjava¼ÓÔØÀàµÄ»úÖÆÓбȽÏÉîÈëµÄÀí½âµÄ»°,ÇëÄ㻨µãʱ¼äºÃºÃÔĶÁÒ»ÏÂÕâÆª¶«Î÷.
ÕâÀï´ÓÈý¸ö·½Ãæ½²Êöjava classloader
1,½«´ÓwebÓ¦Óóö·¢Ä£ÄâÒ»ÏÂwebÓ¦ÓõÄclassloader(Õâ½ÚÊÇÖØµã)
2,ͨ¹ý²âÊÔ2ʵÏÖµÄclassloaderÀ´¼ÓÉîÀí½â
3,·ÒëÒ»ÏÂclassloaderµÄÏà¹Ø¼¼ÊõÎÄÕÂ(À´×ÔCore JavaµÚ¶þ¾íµÄChapter 9. Security),ÓÉÓÚÎÒµÄÓ¢ÎÄˮƽÓÐÏÞ,ÄÑÃâÓв»ºÏÊÊ,Çë´ó¼ÒÖ¸³ö.
¿´¿´ÔõôʵÏÖÒ»¸ö×Ô¼ºµÄClassLoader£¨ÎÒÃÇÒÔwebÓ¦ÓõÄclassloaderΪÀýÀ´½²½â £©
´ó¼Ò¶¼ºÜÊìϤtomcat,±ÈÈçÎÒÃÇҪдһ¸öservletÔËÐеϰ.
1,ÎÒÃÇͨ³£»áÔÚtomcatµÄwebappsĿ¼Ï½¨Ò»¸ö×Ô¼ºµÄwebĿ¼(±ÈÈçmyweb),È»ºóÈÃ×Ô¼ºµÄmywebÖÁÉÙ¾ßÓÐÒÔÏÂĿ¼½á¹¹.
©¸©¤WEB-INF
©À©¤classes
©¸©¤lib
2,Ö±½Ó°ÑclassÎļþ¿½±´µ½classesĿ¼ÏÂ,»òÕß°Ñ×Ô¼º×öµÄservet´ò³Éjar·Åµ½libÏÂ
3,Æô¶¯tomcat¾ÍÄÜ·ÃÎÊservletÁË.
ÔÙ˵һµã:²»ÉÙÈËÁ˽âstruts,Ò²×ö¹ý»ùÓÚstrutsµÄÓ¦ÓÃ.Æäʵstruts¶ÔÓÚÎÒÃÇÀ´ËµÖ»ÊǼ¸¸öjar¶øÒÑ,ÎÒÃÇÒªÔÚ×Ô¼ºµÄÓ¦ÓÃÖÐÓÃstruts,
Ö»²»¹ý¾ÍÏóÉÏÃæÒ»Ñù°ÑstrutsµÄ¸÷¸ölib¿½±´µ½webÓ¦ÓõÄWEB-INF/libϾÍOKÁË.
ÔÙ×ÛºÏÇ°ÃæµÄ»ù´¡²¿·Ö,ÆäʵwebÓ¦ÓÃÊÇÓÐ×Ô¼ºµÄclassloaderµÄ,ËûרߺÔð¼ÓÔØWEB-INF/libºÍWEB- INF/classesµÄÀà¡£ÏÂÃæÎÒÃǾÍÀ´Ä£ÄâÒ»ÏÂwebÓ¦ÓõÄclassloader,ÏàÐÅ¿´ÁËÏÂÃæµÄ´úÂëÄã¾Í»á¶ÔclassloaderµÄÀí½âÓÖÉÏÒ»¸ǫ̈½×.
view plaincopy to clipboardprint?
import java.io.File;
import java.io.FilenameFilter;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
/*
* webÓ¦ÓõÄclassloader
* ´øÄã²½ÈëclassloaderµÄÌìÌÃ
*/
public class WebAppClassLoader{
URLClassLoader myClassLoader = null;
/*
* Ó÷¨:new WebAppClassLoader(webRoot)
* ±ÈÈç:new WebAppClassLoader("c:/web")
&
Ïà¹ØÎĵµ£º
java HTMLÎļþÎĵµ±à¼Æ÷ ʹÓà JTextPane
/* HTMLDocumentEditor.java
* @author: Charles Bell
* @version: May 27, 2002
*/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.*;
im ......
UIManager.setLookAndFeel(“
com.sun.java.swing.plaf.windows.WindowsLookAndFeel
”);//windowsĬÈÏ
UIManager.put("MenuBar.font", font);//¸ø¿Ø¼þÉèÖÃ×ÖÌå
static Object
put
(Object
key, Object
value)
public static void setLookAndFeel(String className, jav ......
Java¡¡NIO·Ç¶ÂÈûÓ¦ÓÃͨ³£ÊÊÓÃÓÃÔÚI/O¶ÁдµÈ·½Ã棬ÎÒÃÇÖªµÀ£¬ÏµÍ³ÔËÐеÄÐÔÄÜÆ¿¾±Í¨³£ÔÚI/O¶Áд£¬°üÀ¨¶Ô¶Ë¿ÚºÍÎļþµÄ²Ù×÷ÉÏ£¬¹ýÈ¥£¬ÔÚ´ò
¿ªÒ»¸öI/OͨµÀºó£¬read()½«Ò»Ö±µÈ´ýÔÚ¶Ë¿ÚÒ»±ß¶ÁÈ¡×Ö½ÚÄÚÈÝ£¬Èç¹ûûÓÐÄÚÈݽøÀ´£¬read()Ò²ÊÇɵɵµÄµÈ£¬Õâ»áÓ°ÏìÎÒÃdzÌÐò¼ÌÐø×öÆäËûÊÂÇ飬ÄÇ
ô¸Ä½ø×ö·¨¾ÍÊÇ¿ªÉèỊ̈߳¬ÈÃÏß³ÌÈ¥µÈ ......
Ò»¡¢Java±à³ÌÈëÃÅÀà
¶ÔÓÚûÓÐJava±à³Ì¾ÑéµÄ³ÌÐòÔ±ÒªÈëÃÅ£¬Ëæ±ã¶ÁʲôÈëÃÅÊé¼®¶¼Ò»Ñù£¬Õâ¸ö½×¶ÎÐèÒªÄã¿ìËÙµÄÕÆÎÕJava»ù´¡Óï·¨ºÍ»ù±¾Ó÷¨£¬×ÚÖ¼¾ÍÊÇ“àñàðÍÌÔæ²»ÇóÉõ½â”£¬ÏȶÔJavaÊìϤÆðÀ´ÔÙ˵¡£Óú̵ܶÄʱ¼ä¿ìËÙ¹ýÒ»±éJavaÓï·¨£¬Á¬ã´ø²Â¶àдд´úÂ룬Ҫ“ÖªÆäÈ»”¡£
1¡¢¡¶Java±à³Ì˼Ïë¡·
Ô ......
½ñÌìÏë¶ÁÈ¡srcϵÄÅäÖÃÎļþ£¬ÒÔǰһֱûÕÒµ½·½·¨£¬½ñÌìÑо¿ÁËÏÂÖÕÓÚOKÁË
System.out.println("path1:" + getClass().getResource("config.xml").getPath());
System.out.println("path2:" + getClass().getClassLoader().getResource("config.xml").getPath());
path1:/D:/DJ/workspace/.metadata ......