javaÔËÐл·¾³ Àà×°ÔØÆ÷ClassLoader
½ñÌì¹Û¿´ÁËÀ¶É½ÀÏʦjava±³ºóµÄÃØÃÜÏà¹ØÊÓÆµ£¬·¢ÏÖÒªÏëд³ö¸ßÐÔÄܵijÌÐò£¬Ò»¶¨Òª¶ÔÆäÔËÐÐÔÀíÒÔ¼°ÆäÔËÐл·¾³ÓÐÏ൱³Ì¶ÈµÄÁ˽⡣ÄÇClassLoaderÊÇÏ൱¹Ø¼üµÄÒ»¸ö²¿·Ö¡£
ÏÈ˵ÏÂjava³ÌÐòÔËÐеĻù±¾Á÷³Ì£¬ÏȽ«javaÎļþ±àÒëΪclassÎļþ£¬È»ºóͨ¹ýClassLoader£¨Àà¼ÓÔØÆ÷£©£¬¼ÓÔØµ½Runtime Data Area£¨ÀàËÆÓÚÄڴ棩ÖУ¬ÔÙ½»ÓëExecution Engine£¨Ï൱ÓÚCPU£©½øÐÐÖ´ÐвÙ×÷£¬ÈôjavaÓïÑÔÓе÷ÓÃÆäËûµÄÓïÑÔ½øÐÐÏà¹Ø¼ÆË㣬ÔòÐèÒªÓõ½Native interfaceÕâ¸ö²¿·Ö£¬×îÖÕÐγÉNative Libraries£¬ÖÁ´Ë£¬Ö´ÐÐÍê³É¡£
ÄÇ¿´ÁËÉÏÃæµÄÁ÷³Ì£¬ClassLoaderÊÇÒ»¸öClassÎļþµÄÔØÈëÆ÷£¬ÆäÔØÈëµÄ·½Ê½ÓÐÔ¤ÏÈÔØÈëºÍ°´ÐèÔØÈëÁ½ÖÖ·½Ê½¡£Ô¤ÏÈÔØÈëÖ÷ÒªÊÇÔØÈëһЩ¾ßÌåµÄjavaϵͳÎļþ£¬¸÷¸öjavaÔËÐбØÐèµÄÀàÎļþ£»°´ÐèÔØÈëÖ÷ÒªÊÇÎÒÃÇ×Ô¼ºËù±àдµÄ¾ßÌåµÄjavaµÄÀàÎļþ¡£Ô¤ÏÈÔØÈëºÍ°´ÐèÔØÈë¿É¹ËÃû˼Ò壬ԤÏÈÔØÈëÊÇÔÚÖ´ÐÐû¸ö³ÌÐòǰ¶¼ÐèÒª½øÐÐÔØÈ룬°´ÐèÔØÈëÊÇÖ»ÓÐÔÚµ÷ÓþßÌåµÄÀàÎļþʱ²Å½øÐÐÔØÈë¡£ÎÒÃÇ¿ÉÒÔͨ¹ý¸ÃÃüÁîÀ´×·×Ùjava³ÌÐòÖ´ÐÐʱ£¬ËùÔØÈëµÄ¾ßÌåµÄclassÎļþ---java -verbose:class Main(±àÒëºÃµÄÎļþÃû)¡£
°´ÐèÔØÈëÓÖ·ÖΪÁ½ÖÖ·½Ê½£¬ÎªÏÔʽºÍÒþʽ.ÒþʽÊÇÎÒÃDZȽϳ£ÓõÄ,¾ßÌåµÄÐÎʽ²»Ê¹ÓÃnew()¹Ø¼ü×Ö,¶øÏÔʽµÄ·½·¨Ö÷ÒªÊÇÏÂÃæÁ½ÖÖ·½Ê½,Ò»¸öÊÇClass.forName()ºÍClassLoader.LoadClass()·½·¨.Class.forNameÔÚ×öÓëÊý¾Ý¿âµÄÁ¬½ÓʱÓùý,²»¹ýÒÔǰ²»Á˽âÆäº¬Òâ.ÕâÁ½ÖÖ·½·¨ÎÒĿǰ¸Ð¾õÒþʽµÄÓÃÆðÀ´¸ü·½±ã,µ«ºöÂÔÁ˾ßÌåµÄÔØÈë¹ý³Ì£»ÏÔʽµÄÔØÈëÓÃÆðÀ´¸´ÔÓ£¬µ«¶Ô³ÌÐò¾ßÌåµÄÖ´ÐÐÁ÷³Ì£¬ÎÒÃÇ¿ÉÒÔ½øÐÐÏêϸµÄ¿ØÖÆ¡£
¾ßÌåÔõôÓÃÕâ¸ö»¹Ã»Ì«¸ãÃ÷°×£¬»¹ÐèÔÙÑо¿ÏÂ.Ã÷Ìì»á°ÑclassLoaderÄÚ²¿µÄ¾ßÌå¹¹ÔìÔÙÑо¿Ï¡£
ÏÂÃæÊÇ×öÕâ¸öÁ·Ï°Ê±µÄ¾ßÌåÄÚÈÝ£º
//MyClassLoader
import java.io.*;
import java.net.*;
import java.lang.reflect.*;
public class MyClassLoader extends URLClassLoader{
private static File file = new File("F:\\java\20100108 ");
public MyClassLoader(){
super(getUrl());
}
public static URL[] getUrl(){
try{
return new URL[]{file.toURL()};
}catch(MalformedURLException e){
return new URL[0];
}
}
}
//A.java
import java.lang.reflect.*;
public class A {
public static void main(String[] args){
try{
Ïà¹ØÎĵµ£º
¶ÔÏóÖ»ÄÜ´æÔÚÓÚÄÚ´æÖÐ £¬¶øÄÚ´æÖв»ÄÜÓÀ¾Ã±£´æÊý¾Ý¡£Èç¹ûÒªÓÀ¾Ã±£´æ¶ÔÏóµÄ״̬£¬ÐèÒª½øÐжÔÏóµÄ³Ö¾Ã»¯£¬¼´°Ñ¶ÔÏó´æ´¢µ½×¨ÃŵÄÊý¾Ý´æ´¢¿âÖРĿǰ£¬¹ØÏµÊý¾Ý¿âȽȽÊÇʹÓÃ×î¹ã·ºµÄÊý¾Ý´æ´¢¿â¡£¹ØÏµÊý¾Ý¿âÖдæ·ÅµÄÊǹØÏµÊý¾Ý£¬ËüÊÇ·ÇÃæÏò¶ÔÏóµÄ¡£
³Ö¾Ã»¯Êǽ«JavaÐéÄâ»ú¶ÔÏó³Ö¾Ã±£´æ£¬¶ø²»Êǽ«Êý¾Ý¿âÓ³ÉäΪ¶ÔÏó£¬Í¨³£Êý¾ÝµÄ´æ´¢ ......
±¾È˾ãËÄÄêÑз¢¾Ñ飨javaµÄ£©
˸øÎÒÍÆ¼ö·ÝǶÈëʽcְ룬cÓïÑÔһֱûÂäÏ£¬Ñ§µÄ»¹ÐС£¡£¡£¹¤×Ê¿ªÎÒ2k¾ÍÐУ¡
ֻΪ³É¹¦´òÈëǶÈëʽÊг¡¡£¡£¡£¸ø¸ö»ú»á°É¡£¡£
ÎÒÕæµÄÊÇÌ«ÏëºÍÄãÃÇ×öͬÐÐÀ²£¡
ÓÐÒâÏòµÄ¿ÉÒÔÁªÏµÎÒ¡£¡£ÎÒ²»Ìô´ýÓö£¬¶Ô¹¤×÷¾ÍÒ»¸öÒªÇó£¬Ç¶Èëʽ¿ª·¢¡£¡£¡£ÎÒÓе쬾ÍÊÇ4ÄêµÄjavaÑз¢¾ÑéºÍc»ù´¡¡£¡£¡£ÌáÇ ......
public boolean writeXML(String content, String filename)
{
String savepath;
FileOutputStream fout;
// log.info("content:"+content+ ......
¹Ø¼ü×Ö: java.e800.com.cn/articles/2007/413/1176400876794405339_1.htm
http://java.e800.com.cn/articles/2007/413/1176400876794405339_1.html
±àÕß°´£ºJavaÄÚ´æÐ¹Â©ÊÇÿ¸öJava³ÌÐòÔ±¶¼»áÓöµ½µÄÎÊÌ⣬³ÌÐòÔÚ±¾µØÔËÐÐÒ»ÇÐÕý³££¬¿ÉÊDz¼Êðµ½Ô¶¶Ë¾Í»á³öÏÖÄÚ´æÎÞÏÞÖÆµÄÔö³¤£¬×îºóϵͳ̱»¾£¬ÄÇôÈçºÎ×î¿ì×îºÃµÄ¼ì²â³ÌÐòµÄÎ ......
javaÎļþ¹ýÂËÆ÷µÄʹÓôúÂëÈçÏ£º
²âÊÔ´úÂ룺package file;
import java.io.File;
public class fileFilter {
public static void main(String[] args) {
File file = new File("d:\\");//ÉèÖÃÎļþ·¾¶
for (File fileList : file.listFiles(new file.MyFileFilter())) {
......