锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产青草亚洲香蕉精品久久,亚洲二区在线视频,中文字幕日韩亚洲http://www.tkk7.com/mstar/archive/2010/08/11/328481.html榛戠伒榛戠伒Wed, 11 Aug 2010 01:59:00 GMThttp://www.tkk7.com/mstar/archive/2010/08/11/328481.htmlhttp://www.tkk7.com/mstar/comments/328481.htmlhttp://www.tkk7.com/mstar/archive/2010/08/11/328481.html#Feedback0http://www.tkk7.com/mstar/comments/commentRss/328481.htmlhttp://www.tkk7.com/mstar/services/trackbacks/328481.htmlC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis.exe -i

Start installing ASP.NET (2.0.50727).
...
Finished installing ASP.NET (2.0.50727).


C:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Communication Foundation>ServiceModelReg.exe //x


Microsoft(R) Windows Communication Foundation Installation Utility
[Microsoft (R) Windows (R) Communication Foundation, Version 3.0.4506.2152]
Copyright (c) Microsoft Corporation.  All rights reserved.


Installing: Machine.config Section Groups and Handlers

Installing: System.Web Build Provider

Installing: System.Web Compilation Assemblies

Installing: HTTP Handlers

Installing: HTTP Modules

Installing: Web Host Script Mappings

Installing: WMI Classes

Installing: Windows CardSpace (idsvc)

Installing: Net.Tcp Port Sharing Service (NetTcpPortSharing)

Installing: HTTP Namespace Reservations

C:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Communication Foundation>ServiceModelReg.exe /s:W3SVC

Microsoft(R) Windows Communication Foundation Installation Utility
[Microsoft (R) Windows (R) Communication Foundation, Version 3.0.4506.2152]
Copyright (c) Microsoft Corporation.  All rights reserved.

Installing: Web Host Script Mappings

3.
C:\WINDOWS\Microsoft.NET\Framework\v3.5>WFServicesReg.exe /c

C:\WINDOWS\Microsoft.NET\Framework\v3.
5>WFServicesReg.exe /r

4.  鍙戠敓Error: Failed to access IIS metabase

aspnet_regiis -ga ASPNET
Start granting ASPNET access to the IIS metabase and other directories used by ASP.NET.
Finished granting ASPNET access to the IIS metabase and other directories used by ASP.NET.

榛戠伒 2010-08-11 09:59 鍙戣〃璇勮
]]>
Oracle寤哄畬绱㈠紩鍚庤analyze涓涓嬫墠琛?http://www.tkk7.com/mstar/archive/2009/11/25/303667.html榛戠伒榛戠伒Wed, 25 Nov 2009 09:33:00 GMThttp://www.tkk7.com/mstar/archive/2009/11/25/303667.htmlhttp://www.tkk7.com/mstar/comments/303667.htmlhttp://www.tkk7.com/mstar/archive/2009/11/25/303667.html#Feedback0http://www.tkk7.com/mstar/comments/commentRss/303667.htmlhttp://www.tkk7.com/mstar/services/trackbacks/303667.html         ownname=>'BTA',
        tabname=>'BTAM003TB',
        partname=> NULL,
        estimate_percent=>100,
        cascade=>TRUE,
        degree=>1);

榛戠伒 2009-11-25 17:33 鍙戣〃璇勮
]]>
Visual Studio寮鍙慟T紼嬪簭--鐜閰嶇疆http://www.tkk7.com/mstar/archive/2009/11/12/302152.html榛戠伒榛戠伒Thu, 12 Nov 2009 14:53:00 GMThttp://www.tkk7.com/mstar/archive/2009/11/12/302152.htmlhttp://www.tkk7.com/mstar/comments/302152.htmlhttp://www.tkk7.com/mstar/archive/2009/11/12/302152.html#Feedback0http://www.tkk7.com/mstar/comments/commentRss/302152.htmlhttp://www.tkk7.com/mstar/services/trackbacks/302152.html
浜? 瀹夎VS.

浠ヤ笂涓ゆ娌″暐濂借鐨?

涓? 緙栬瘧鏈湴Qt搴? 涓嶇劧浣犱細(xì)鍑虹幇鎵句笉鍒皅maind.lib鏂囦歡榪欐牱鐨勭紪璇戦敊璇?

閫氳繃Visual Studio 2008 Command Prompt榪涘叆鎺у埗鍙?
涓瀹氳閫氳繃榪欎釜. 涓嶈兘鍦ㄨ繍琛岄噷鐩存帴杈撳叆cmd榪涘叆. 榪欐牱鐨勮瘽鏄病鏈塚C緙栬瘧鐜鐨?


鍦ㄦ帶鍒跺彴閲宑d鍒癚T鐩綍, 鐩綍閲屾湁涓猚onfigure.exe
杈撳叆: configure -platform win32-msvc
闇瑕佷竴瀹氱殑鏃墮棿浣嗘潵閰嶇疆瀹屾垚.

鐒跺悗杈撳叆: nmake
鐒跺悗瑕佺瓑寰堥暱鏃墮棿絳夊緟Qt琚紪璇戞垚VC鐨刲ib鏍煎紡.

鍥? 鍒涘緩欏圭洰
鍦ㄩ」鐩洰褰曚笅:
鎺у埗鍙拌緭鍏? qmake -project
鐒跺悗: qmake -t vcapp -spec %QT_HOME%\mkspecs\win32-msvc2008
spec鍚庨潰鐨勯」鐩彲浠ョ湅mkspecs鐩綍涓嬬殑瀛愮洰褰? win32-msvc2005, win32-msvn2003浠涔堢殑閮芥湁.

鐒跺悗灝辨湁VC鐨勯」鐩枃浠朵簡(jiǎn).

浜? Visual Studio涓殑閰嶇疆
涓昏鏄痲make鐢熸垚鐨勯」鐩厤緗腑鐨剄t璺緞鏈夐棶棰?鎵浠ヨ閲嶆柊閰嶇疆.
涓昏鏄袱欏?
1. include. 閰嶇疆濡備笅鍥?


璇︾粏欏圭洰:




2. linker 閰嶇疆濡備笅鍥?


鍔犺澆鐨刲ib璇︾粏欏圭洰


榪欐牱灝卞簲璇ュ彲浠ヤ簡(jiǎn).

鍏蜂綋欏圭洰鍚嶇О瑕佺湅浣犵紪璇戝嚭鏉ョ殑鍚嶅瓧浜? 鎴戝湪鎴戞満鍣ㄤ笂緙栬瘧鍑烘潵鐨勬槸QtGuid4.lib鍜孮tCored4.lib
鍙﹀瑕佹兂榪愯緙栬瘧鍑烘潵鐨別xe, 璁板緱鍚х浉鍏崇殑dll鏂囦歡澶嶅埗鍒皊ystem32鐩綍涓?



榛戠伒 2009-11-12 22:53 鍙戣〃璇勮
]]>
Tomcat閲岀殑cpappend.bat http://www.tkk7.com/mstar/archive/2009/11/05/301210.html榛戠伒榛戠伒Thu, 05 Nov 2009 01:43:00 GMThttp://www.tkk7.com/mstar/archive/2009/11/05/301210.htmlhttp://www.tkk7.com/mstar/comments/301210.htmlhttp://www.tkk7.com/mstar/archive/2009/11/05/301210.html#Feedback1http://www.tkk7.com/mstar/comments/commentRss/301210.htmlhttp://www.tkk7.com/mstar/services/trackbacks/301210.html 鍙互鎶婃寚瀹氱殑鍙傛暟娣誨姞鍒癱lasspath閲岄潰.
鍜宐at鑴氭湰for涓璧烽厤鍚?鍙互瀹炵幇鑷姩鐨勬妸鏌愪釜鐩綍涓嬬殑jar鍖呴兘鏀懼埌classpath閲?

rem ---------------------------------------------------------------------------
rem Append to CLASSPATH
rem
rem $Id: cpappend.bat 
301115 2002-08-04 18:19:43Z patrickl $
rem 
---------------------------------------------------------------------------

rem Process the first argument
if ""%1"" == """" goto end
set CLASSPATH
=%CLASSPATH%;%1
shift

rem Process the remaining arguments
:setArgs
if ""%1"" == """" goto doneSetArgs
set CLASSPATH
=%CLASSPATH% %1
shift
goto setArgs
:doneSetArgs
:end

閰嶅悎for涓璧風(fēng)敤

set CURRENT_DIR=%cd%
set CLASSPATH
=.
for %%i in (%CURRENT_DIR%\lib\*.jar) do call cpappend.bat %%i
start java 
-Duser.dir=%CURRENT_DIR%  -cp %CLASSPATH% a.b.c.MainApp



榛戠伒 2009-11-05 09:43 鍙戣〃璇勮
]]>
鍒ゆ柇涓涓被鏄彟涓涓被鐨勫瓙綾?/title><link>http://www.tkk7.com/mstar/archive/2008/12/24/248076.html</link><dc:creator>榛戠伒</dc:creator><author>榛戠伒</author><pubDate>Wed, 24 Dec 2008 07:02:00 GMT</pubDate><guid>http://www.tkk7.com/mstar/archive/2008/12/24/248076.html</guid><wfw:comment>http://www.tkk7.com/mstar/comments/248076.html</wfw:comment><comments>http://www.tkk7.com/mstar/archive/2008/12/24/248076.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.tkk7.com/mstar/comments/commentRss/248076.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mstar/services/trackbacks/248076.html</trackback:ping><description><![CDATA[浣跨敤Class鐨刬sAssignableFrom鏂規(guī)硶鍙槸瀹炵幇銆備絾鏄敞鎰忎笉瑕佸紕鍙嶄簡(jiǎn)錛?br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">聽AssignableFromTest聽</span><span style="color: rgb(0, 0, 255);">extends</span><span style="color: rgb(0, 0, 0);">聽TestCase聽{<br /><br />聽聽聽聽</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">聽A聽{}<br />聽聽聽聽</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">聽B聽</span><span style="color: rgb(0, 0, 255);">extends</span><span style="color: rgb(0, 0, 0);">聽A{}<br />聽聽聽聽<br />聽聽聽聽</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">聽testIt(){<br />聽聽聽聽聽聽聽聽A聽a聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">聽A();<br />聽聽聽聽聽聽聽聽B聽b聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">聽B();<br />聽聽聽聽聽聽聽聽assertTrue(a.getClass().isAssignableFrom(b.getClass()));<br />聽聽聽聽}<br />}</span></div><br /><img src ="http://www.tkk7.com/mstar/aggbug/248076.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mstar/" target="_blank">榛戠伒</a> 2008-12-24 15:02 <a href="http://www.tkk7.com/mstar/archive/2008/12/24/248076.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[寰呯炕璇慮Categories of Java HotSpot VM Optionshttp://www.tkk7.com/mstar/archive/2007/12/26/Java_HotSpot_VM_Options.html榛戠伒榛戠伒Wed, 26 Dec 2007 06:23:00 GMThttp://www.tkk7.com/mstar/archive/2007/12/26/Java_HotSpot_VM_Options.htmlhttp://www.tkk7.com/mstar/comments/170579.htmlhttp://www.tkk7.com/mstar/archive/2007/12/26/Java_HotSpot_VM_Options.html#Feedback0http://www.tkk7.com/mstar/comments/commentRss/170579.htmlhttp://www.tkk7.com/mstar/services/trackbacks/170579.htmlThis document provides information on typical command-line options and environment variables that can affect the performance characteristics of the Java HotSpot Virtual Machine. Unless otherwise noted, all information in this document pertains to both the Java HotSpot Client VM and the Java HotSpot Server VM.

Users of JDKs older than 1.3.0 who wish to port to a Java HotSpot VM, should see Java HotSpot Equivalents of Exact VM flags.


Categories of Java HotSpot VM Options


Standard options recognized by the Java HotSpot VM are described on the Java Application Launcher reference pages for Windows, Solaris and Linux. This document deals exclusively with non-standard options recognized by the Java HotSpot VM:

  • Options that begin with -X are non-standard (not guaranteed to be supported on all VM implementations), and are subject to change without notice in subsequent releases of the JDK.
  • Options that are specified with -XX are not stable and are not recommended for casual use. These options are subject to change without notice.

Some Useful -XX Options


Default values are listed for Java SE 6 for Solaris Sparc with -server. Some options may vary per architecture/OS/JVM version. Platforms with a differing default value are listed in the description.

  • Boolean options are turned on with -XX:+<option> and turned off with -XX:-<option>.
  • Numeric options are set with -XX:<option>=<number>. Numbers can include 'm' or 'M' for megabytes, 'k' or 'K' for kilobytes, and 'g' or 'G' for gigabytes (for example, 32k is the same as 32768).
  • String options are set with -XX:<option>=<string>, are usually used to specify a file, a path, or a list of commands

Flags marked as manageable are dynamically writeable through the JDK management interface (com.sun.management.HotSpotDiagnosticMXBean API) and also through JConsole. In Monitoring and Managing Java SE 6 Platform Applications, Figure 3 shows an example. The manageable flags can also be set through jinfo -flag.

The options below are loosely grouped into three categories.



Behavioral Options


Option and Default Value
Description
-XX:-AllowUserSignalHandlers Do not complain if the application installs signal handlers. (Relevant to Solaris and Linux only.)

-XX:AltStackSize=16384 Alternate signal stack size (in Kbytes). (Relevant to Solaris only, removed from 5.0.)

-XX:-DisableExplicitGC Disable calls to System.gc(), JVM still performs garbage collection when necessary.

-XX:+FailOverToOldVerifier Fail over to old verifier when the new type checker fails. (Introduced in 6.)

-XX:+HandlePromotionFailure The youngest generation collection does not require a guarantee of full promotion of all live objects. (Introduced in 1.4.2 update 11) [5.0 and earlier: false.]

-XX:+MaxFDLimit Bump the number of file descriptors to max. (Relevant聽 to Solaris only.)

-XX:PreBlockSpin=10 Spin count variable for use with -XX:+UseSpinning. Controls the maximum spin iterations allowed before entering operating system thread synchronization code. (Introduced in 1.4.2.)

-XX:-RelaxAccessControlCheck Relax the access control checks in the verifier. (Introduced in 6.)

-XX:+ScavengeBeforeFullGC Do young generation GC prior to a full GC. (Introduced in 1.4.1.)

-XX:+UseAltSigs Use alternate signals instead of SIGUSR1 and SIGUSR2 for VM internal signals. (Introduced in 1.3.1 update 9, 1.4.1. Relevant to Solaris only.)

-XX:+UseBoundThreads Bind user level threads to kernel threads. (Relevant to Solaris only.)

-XX:-UseConcMarkSweepGC Use concurrent mark-sweep collection for the old generation. (Introduced in 1.4.1)

-XX:+UseGCOverheadLimit Use a policy that limits the proportion of the VM's time that is spent in GC before an OutOfMemory error is thrown. (Introduced in 6.)

-XX:+UseLWPSynchronization Use LWP-based instead of thread based synchronization. (Introduced in 1.4.0. Relevant to Solaris only.)

-XX:-UseParallelGC Use parallel garbage collection for scavenges. (Introduced in 1.4.1)

-XX:-UseParallelOldGC Use parallel garbage collection for the full collections. Enabling this option automatically sets -XX:+UseParallelGC. (Introduced in 5.0 update 6.)

-XX:-UseSerialGC Use serial garbage collection. (Introduced in 5.0.)

-XX:-UseSpinning Enable naive spinning on Java monitor before entering operating system thread synchronizaton code. (Relevant to 1.4.2 and 5.0 only.) [1.4.2, multi-processor Windows platforms: true]

-XX:+UseTLAB Use thread-local object allocation (Introduced in 1.4.0, known as UseTLE prior to that.) [1.4.2 and earlier, x86 or with -client: false]

-XX:+UseSplitVerifier Use the new type checker with StackMapTable attributes. (Introduced in 5.0.)[5.0: false]

-XX:+UseThreadPriorities Use native thread priorities.

-XX:+UseVMInterruptibleIO Thread interrupt before or with EINTR for I/O operations results in OS_INTRPT. (Introduced in 6. Relevant to Solaris only.)


Back to Options


Performance Options


Option and Default Value
Description
-XX:+AggressiveOpts Turn on point performance compiler optimizations that are expected to be default in upcoming releases. (Introduced in 5.0 update 6.)

-XX:CompileThreshold=10000 Number of method invocations/branches before compiling [-client: 1,500]

-XX:LargePageSizeInBytes=4m Sets the large page size used for the Java heap. (Introduced in 1.4.0 update 1.) [amd64: 2m.]

-XX:MaxHeapFreeRatio=70 Maximum percentage of heap free after GC to avoid shrinking.

-XX:MaxNewSize=size Maximum size of new generation (in bytes). Since 1.4, MaxNewSize is computed as a function of NewRatio. [1.3.1 Sparc: 32m; 1.3.1 x86: 2.5m.]

-XX:MaxPermSize=64m Size of the Permanent Generation.聽 [5.0 and newer: 64 bit VMs are scaled 30% larger; 1.4 amd64: 96m; 1.3.1 -client: 32m.]

-XX:MinHeapFreeRatio=40 Minimum percentage of heap free after GC to avoid expansion.

-XX:NewRatio=2 Ratio of new/old generation sizes. [Sparc -client: 8; x86 -server: 8; x86 -client: 12.]-client: 4 (1.3) 8 (1.3.1+), x86: 12]

-XX:NewSize=2.125m Default size of new generation (in bytes) [5.0 and newer: 64 bit VMs are scaled 30% larger; x86: 1m; x86, 5.0 and older: 640k]

-XX:ReservedCodeCacheSize=32m Reserved code cache size (in bytes) - maximum code cache size. [Solaris 64-bit, amd64, and -server x86: 48m; in 1.5.0_06 and earlier, Solaris 64-bit and and64: 1024m.]

-XX:SurvivorRatio=8 Ratio of eden/survivor space size [Solaris amd64: 6; Sparc in 1.3.1: 25; other Solaris platforms in 5.0 and earlier: 32]

-XX:TargetSurvivorRatio=50 Desired percentage of survivor space used after scavenge.

-XX:ThreadStackSize=512 Thread Stack Size (in Kbytes). (0 means use default stack size) [Sparc: 512; Solaris x86: 320 (was 256 prior in 5.0 and earlier); Sparc 64 bit: 1024; Linux amd64: 1024 (was 0 in 5.0 and earlier); all others 0.]

-XX:+UseBiasedLocking Enable biased locking. For more details, see this tuning example. (Introduced in 5.0 update 6.) [5.0: false]

-XX:+UseFastAccessorMethods Use optimized versions of Get<Primitive>Field.

-XX:-UseISM Use Intimate Shared Memory. [Not accepted for non-Solaris platforms.] For details, see Intimate Shared Memory.

-XX:+UseLargePages Use large page memory. (Introduced in 5.0 update 5.) For details, see Java Support for Large Memory Pages.

-XX:+UseMPSS Use Multiple Page Size Support w/4mb pages for the heap. Do not use with ISM as this replaces the need for ISM. (Introduced in 1.4.0 update 1, Relevant to Solaris 9 and newer.) [1.4.1 and earlier: false]


Back to Options


Debugging Options


Option and Default Value
Description
-XX:-CITime Prints time spent in JIT Compiler. (Introduced in 1.4.0.)

-XX:ErrorFile=./hs_err_pid<pid>.log If an error occurs, save the error data to this file. (Introduced in 6.)

-XX:-ExtendedDTraceProbes Enable performance-impacting dtrace probes. (Introduced in 6. Relevant to Solaris only.)

-XX:HeapDumpPath=./java_pid<pid>.hprof Path to directory or filename for heap dump. Manageable. (Introduced in 1.4.2 update 12, 5.0 update 7.)

-XX:-HeapDumpOnOutOfMemoryError Dump heap to file when java.lang.OutOfMemoryError is thrown. Manageable. (Introduced in 1.4.2 update 12, 5.0 update 7.)

-XX:OnError="<cmd args>;<cmd args>" Run user-defined commands on fatal error. (Introduced in 1.4.2 update 9.)

-XX:OnOutOfMemoryError="<cmd args>;
<cmd args>"
Run user-defined commands when an OutOfMemoryError is first thrown. (Introduced in 1.4.2 update 12, 6)

-XX:-PrintClassHistogram Print a histogram of class instances on Ctrl-Break. Manageable. (Introduced in 1.4.2.) The jmap -histo command provides equivalent functionality.

-XX:-PrintConcurrentLocks Print java.util.concurrent locks in Ctrl-Break thread dump. Manageable. (Introduced in 6.) The jstack -l command provides equivalent functionality.

-XX:-PrintCommandLineFlags Print flags that appeared on the command line. (Introduced in 5.0.)

-XX:-PrintCompilation Print message when a method is compiled.

-XX:-PrintGC Print messages at garbage collection. Manageable.

-XX:-PrintGCDetails Print more details at garbage collection. Manageable. (Introduced in 1.4.0.)

-XX:-PrintGCTimeStamps Print timestamps at garbage collection. Manageable (Introduced in 1.4.0.)

-XX:-PrintTenuringDistribution Print tenuring age information.

-XX:-TraceClassLoading Trace loading of classes.

-XX:-TraceClassLoadingPreorder Trace all classes loaded in order referenced (not loaded). (Introduced in 1.4.2.)

-XX:-TraceClassResolution Trace constant pool resolutions. (Introduced in 1.4.2.)

-XX:-TraceClassUnloading Trace unloading of classes.

-XX:-TraceLoaderConstraints Trace recording of loader constraints. (Introduced in 6.)


榛戠伒 2007-12-26 14:23 鍙戣〃璇勮
]]>
鐢↗akartaCommon鐨刵et緇勪歡鏉ュ仛ftp涓嬭澆http://www.tkk7.com/mstar/archive/2007/11/08/use_jakarka_common_net.html榛戠伒榛戠伒Thu, 08 Nov 2007 11:21:00 GMThttp://www.tkk7.com/mstar/archive/2007/11/08/use_jakarka_common_net.htmlhttp://www.tkk7.com/mstar/comments/159147.htmlhttp://www.tkk7.com/mstar/archive/2007/11/08/use_jakarka_common_net.html#Feedback5http://www.tkk7.com/mstar/comments/commentRss/159147.htmlhttp://www.tkk7.com/mstar/services/trackbacks/159147.html
棣栧厛鎶婁唬鐮佽創(chuàng)鍑烘潵:
聽1publicclass聽ClientTest聽{
聽2聽聽聽聽publicstaticvoid聽main(String[]聽args)聽{
聽3聽聽聽聽聽聽聽聽String聽url聽="172.17.1.38";
聽4聽聽聽聽聽聽聽聽String聽user聽="test";
聽5聽聽聽聽聽聽聽聽String聽pwd聽="test";
聽6
聽7聽聽聽聽聽聽聽聽FTPClient聽ftp聽=new聽FTPClient();
聽8聽聽聽聽聽聽聽聽ftp.setControlEncoding("GBK");
聽9聽聽聽聽聽聽聽聽FTPClientConfig聽conf聽=new聽FTPClientConfig(FTPClientConfig.SYST_NT);
10聽聽聽聽聽聽聽聽conf.setServerLanguageCode("zh");
11聽聽聽聽聽聽聽聽ftp.configure(conf);
12
13聽聽聽聽聽聽聽聽try聽{
14聽聽聽聽聽聽聽聽聽聽聽聽ftp.connect(url);
15聽聽聽聽聽聽聽聽聽聽聽聽if聽(ftp.login(user,聽pwd))聽{
16聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽int聽reply聽=聽ftp.getReplyCode();
17聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if聽(!FTPReply.isPositiveCompletion(reply))聽{
18聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ftp.disconnect();
19聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽System.out.println("disconnect");
20聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽else聽{
21聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ftp.enterLocalPassiveMode();
22聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ftp.setFileType(FTP.BINARY_FILE_TYPE);
23
24聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽File聽dir聽=new聽File("down");
25聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if聽(!dir.exists())聽{
26聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dir.mkdirs();
27聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
28
29聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽String[]聽names聽=聽ftp.listNames();
30聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽for聽(String聽name聽:聽names)聽{
31聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽File聽file聽=new聽File(dir.getPath()聽+聽File.separator聽+聽name);
32聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if聽(!file.exists())聽{
33聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽file.createNewFile();
34聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
35聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽long聽pos聽=聽file.length();
36聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽RandomAccessFile聽raf聽=new聽RandomAccessFile(file,聽"rw");
37聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽raf.seek(pos);
38聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ftp.setRestartOffset(pos);
39
40聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽I(yíng)nputStream聽is聽=聽ftp.retrieveFileStream(name);
41聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if聽(is聽==null)聽{
42聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽System.out.println("no聽such聽file:"+聽name);
43聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽else聽{
44聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽System.out.println("start聽getting聽file:"+聽name);
45
46聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽int聽b;
47聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽while聽((b聽=聽is.read())聽!=-1)聽{
48聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽raf.write(b);
49聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
50聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if聽(ftp.getReply()聽==聽FTPReply.CODE_226)聽{
51聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽System.out.println("done!");
52聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
53聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽is.close();
54聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
55聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽raf.close();
56聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
57聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
58聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽ftp.logout();
59聽聽聽聽聽聽聽聽聽聽聽聽}
60聽聽聽聽聽聽聽聽}聽catch聽(IOException聽e)聽{
61聽聽聽聽聽聽聽聽聽聽聽聽e.printStackTrace();
62聽聽聽聽聽聽聽聽}
63聽聽聽聽}
64}


涓, 鏂囦歡鍚嶄腑鏂囦貢鐮侀棶棰?
寮濮嬬煡閬撹兘鐢‵TPClient鐨刲istNames鏂規(guī)硶寰楀埌褰撳墠鐩綍涓嬫墍鏈夋枃浠剁殑鍒楄〃. 浣嗘槸鍙戠幇涓枃鏂囦歡鍚嶆槸涔辯爜. 榛樿鎯呭喌涓婩TPClient浣跨敤UTF-8瀛楃闆嗕綔涓哄拰鏈嶅姟鍣ㄩ氳鐨勭紪鐮侀泦. 鑰屾垜浠殑ftp鏈嶅姟鍣ㄦ槸鍦ㄤ腑鏂噖indowsXP涓婅鐨凷ervU. 鎵鏈変嬌鐢℅BK鍋氫負(fù)閫氳緙栫爜闆? 緇忚繃鏌ユ壘api鏂囨。, 鎴戠湅鍒頒簡(jiǎn)setControlEncoding鏂規(guī)硶, 璇曚簡(jiǎn)涓涓?鏋滅劧濂戒嬌. 浜庢槸榪欎釜闂灝辮В鍐充簡(jiǎn):
絎?琛? ftp.setControlEncoding("GBK")
鑷充簬conf.setServerLanguageCode("zh")瀵硅繖涓湁浠涔堝獎(jiǎng)鍝?鎴戣繕娌℃湁楠岃瘉. 浣嗘槸鍙湁榪欏彞鏄笉琛岀殑.

浜? 浼犺緭binary鏂囦歡, 鐢變簬FTPClient榛樿浣跨敤ASCII浣滀負(fù)浼犺緭妯″紡, 鎵鏈変笉鑳戒紶杈撲簩榪涘埗鏂囦歡. 閫氳繃
ftp.setFileType(FTP.BINARY_FILE_TYPE)涓彲浠ヨВ鍐寵繖涓棶棰? 浣嗘槸瑕佸湪login浠ュ悗鎵ц. 鍥犱負(fù)榪欎釜鏂規(guī)硶瑕佸悜鏈嶅姟鍣ㄥ彂閫?TYPE I"鍛戒護(hù).
寮濮嬬殑鏃跺欑敤鐨勬槸setFileTransferMode, 涓嶈繃涓嶅ソ浣? 瀹冧細(xì)鎵ц MODE I鍛戒護(hù), 鏈嶅姟鍣ㄤ笉鎺ュ彈.

涓? 鐢ㄨ鍔ㄦā寮忎紶杈? enterLocalPassiveMode()榪欎釜鍒頒笉鐢ㄥ湪login涔嬪悗鎵ц, 鍥犱負(fù)瀹冨彧鏀瑰彉FTPClient瀹炰緥鐨勫唴閮ㄥ睘鎬?

鍥? 鏂偣緇紶. 蹇?jī)鎯冲簲璇ユ湁鏀寔鍚? 浜庢槸鏌PI緇撴灉鎵懼埌浜?jiǎn)setRestartOffset()鏂規(guī)硶, 璇曚簡(jiǎn)涓涓?鏋滅湡濂戒嬌. 鐢≧andomAccessFile閰嶅悎浣跨敤, 瀹炵幇璧鋒潵榪樻槸铔畝鍗曠殑.

浜? 鍙兘浼犱竴涓枃浠?!
涓嶇煡閬撳ぇ瀹舵湁娌℃湁閬囧埌榪欎釜闂, 浼犺緭絎竴涓枃浠跺ソ浣? 鍚庨潰鐨勭殑retrieveFileStream(name)閮芥槸榪斿洖null. 榪欎釜瀹炲湪鏄護(hù)浜哄ご鐥涚殑闂, 闅句笉鎴愯浼犱竴涓枃浠墮噸鏂板緩绔嬩竴嬈¤繛鎺? 閭f牱涔熷お鍦熶簡(jiǎn)鍚? 浣嗘槸鏂囨。閲屼篃娌℃湁鍐? 鏉ョ偣鐙犵殑,debug瀹冪殑婧愮爜, 鐪嬬湅瀹冪┒绔熷仛浜?jiǎn)浠涔堜簨鎯? 棣栧厛鐪嬩竴涓媐tp鏈嶅姟鍣ㄧ殑鏃ュ織, 鍙戠幇鏃ュ織娌¢棶棰? 榪囨潵鐨勫懡浠ゅ拰reply閮芥槸姝g‘鐨? 浣嗘槸鍙戠幇絎竴涓枃浠朵互鍚庢病鏈夋墽琛孯ETR鍛戒護(hù). 浜庢槸璺熻釜PASV鍛戒護(hù)鐨剅eply浠g爜,鍙戠幇涓嶆槸227,鑰屾湇鍔″櫒涓婄殑鏃ュ織鏄庢槑榪斿洖鐨勬槸227. 闅鵑亾鏄疐TPClient瑙f瀽Reply鍑洪棶棰樹簡(jiǎn). 榪涗竴姝ヨ窡韙彂鐜頒簡(jiǎn)闂, 鍘熸潵鍦ㄤ竴涓枃浠朵紶杈撹繃紼嬩腑浼?xì)漶旂敓涓や釜Reply:
150 Opening BINARY mode data connection for a.sql (19890 Bytes).
226 Transfer complete.
鑰孎TPClient鑷姩娑堣垂鎺変竴涓?浜庢槸瑙f瀽Reply灝卞彂鐢熶簡(jiǎn)閿欎綅, 涓嬩竴涓懡浠ょ殑浼?xì)瑙f?66閭f潯. 鎺ヤ笅鏉ョ殑鍛戒護(hù)閮戒笉鏄В鏋愯嚜宸辯殑Reply鑰屾槸鍓嶄竴嬈″懡浠ょ殑. 鎵鏈夊湪PASV鍛戒護(hù)鐨凴eply鐮佸氨涓嶅浜? FTPClient涔熷氨涓嶄細(xì)鎵ц鎺ヤ笅鏉ユ湰搴旇鎵цRETR鍛戒護(hù).
浠栦笉娑堣垂,鎴戜滑鏉ユ秷璐瑰惂. 浜庢槸鍦ㄦ枃浠朵紶杈撳畬鎴愪互鍚? 涓誨姩璋冪敤涓嬈etReply()鎶婃帴涓嬫潵鐨?26娑堣垂鎺? 榪欐牱鍋氭槸鍙互瑙e喅榪欎釜鏆傛椂鐨勯棶棰? 浣嗕笉鐭ラ亾鍦ㄥ叾浠栫殑ftp鎿嶄綔涓婁細(xì)涓嶄細(xì)涔熸湁綾諱技鐨勬儏鍐? FTPClient榪欑偣鍙仛鐨勪笉澶уソ.

瀵逛簬涓婇潰榪欎釜闂, 鎴戞湰鏉ユ兂淇敼涓涓婩TPClient榪欎釜綾繪潵褰誨簳瑙e喅闂. 緇撴灉鍙戠幇鑷繁涔熸兂涓嶅嚭濂藉姙娉? 鏈鍚庤繕鏄斁寮冧簡(jiǎn).

浠婂ぉ鎵嶅彂鐜?鍘熸潵FTPClient鏈変釜completePendingCommand()鏂規(guī)硶灝辨槸鐢ㄦ潵騫茶繖浠朵簨鎯呯殑!

瀹屾垚鐨勭▼搴?涓婁紶,涓嬭澆,鍒犻櫎
http://www.tkk7.com/Files/mstar/ClientTest.zip


榛戠伒 2007-11-08 19:21 鍙戣〃璇勮
]]>
鐪熸鐤戣嚜宸辮繕鏄笉鏄▼搴忓憳http://www.tkk7.com/mstar/archive/2006/11/28/84111.html榛戠伒榛戠伒Tue, 28 Nov 2006 10:21:00 GMThttp://www.tkk7.com/mstar/archive/2006/11/28/84111.htmlhttp://www.tkk7.com/mstar/comments/84111.htmlhttp://www.tkk7.com/mstar/archive/2006/11/28/84111.html#Feedback1http://www.tkk7.com/mstar/comments/commentRss/84111.htmlhttp://www.tkk7.com/mstar/services/trackbacks/84111.html
紼嬪簭鍦ㄨ繖閲岋細(xì)
http://www.tkk7.com/Files/mstar/fuck_sort.zip

榛戠伒 2006-11-28 18:21 鍙戣〃璇勮
]]>
浠婂ぉ閬囧埌浜?jiǎn)涓涓狢alendar鐨勯棶棰橈紝澶у鐪嬬湅錛?/title><link>http://www.tkk7.com/mstar/archive/2006/08/31/66825.html</link><dc:creator>榛戠伒</dc:creator><author>榛戠伒</author><pubDate>Thu, 31 Aug 2006 03:59:00 GMT</pubDate><guid>http://www.tkk7.com/mstar/archive/2006/08/31/66825.html</guid><wfw:comment>http://www.tkk7.com/mstar/comments/66825.html</wfw:comment><comments>http://www.tkk7.com/mstar/archive/2006/08/31/66825.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/mstar/comments/commentRss/66825.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mstar/services/trackbacks/66825.html</trackback:ping><description><![CDATA[浠婂ぉ鍙戠幇浜?jiǎn)鍓嶄竴孌墊椂闂村仛鐨勭郴緇熺殑涓涓叧浜庢棩鏈熺殑Bug銆傚紑濮嬭繕浠ヤ負(fù)鏄疌alendar鐨凚ug錛屾兂浜?jiǎn)涓浼?xì)绐佺劧鍙戠幇鏄嚜宸辩殑闂銆?br /><br />鍋囪浠婂ぉ緋葷粺鏃墮棿鏄?006騫?鏈?1鍙楓?br /><br />涓嬮潰鏄竴孌典唬鐮?br /><br /><div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">{<br />聽聽聽聽聽聽聽聽</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">聽year聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">2006</span><span style="COLOR: #000000">;<br />聽聽聽聽聽聽聽聽</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">聽month聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽</span><span style="COLOR: #000000">9</span><span style="COLOR: #000000">;<br />聽聽聽聽聽聽聽聽Calendar聽cal聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽Calendar.getInstance();<br />聽聽聽聽聽聽聽聽cal.set(Calendar.YEAR, year);<br />聽聽聽聽聽聽聽聽cal.set(Calendar.MONTH, month </span><span style="COLOR: #000000">- </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br />聽聽聽聽聽聽聽聽System.out.println(cal.get(Calendar.MONTH));聽</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">榪欓噷搴旇鏄灝戯紵</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #000000">聽聽聽聽聽聽聽聽SimpleDateFormat聽df聽</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">聽</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">聽SimpleDateFormat(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">yyyyMM</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br />聽聽聽聽聽聽聽聽System.out.println(df.format(cal.getTime()));<br />}</span></div><br />鍘熸潵棰勬兂鐨勭粨鏋滄槸錛?8 鍜?00609<br />緇撴灉鏄?9 鍜?200610<br /><br />鎵浠ュ湪榪欎釜緋葷粺閲岋紝濡傛灉8鏈?1鍙鋒煡璇?鏈堢殑鍐呭錛屼細(xì)鎶?0鏈堢殑鏌ュ嚭鏉ャ?br /><br />鍏跺疄鏄疌alendar.getIntance()鏂規(guī)硶榪斿洖鐨凜alendar閲岄潰鐨勯粯璁ゆ椂闂存槸褰撳墠緋葷粺鏃墮棿銆?br />鎵浠ヨ繖鏃剁殑Calendar閲孌ay鏄?1.濡傛灉鎶奙onth璁劇疆鎴?錛堜節(jié)鏈堬級(jí)銆侰alendar涓殑鏃墮棿灝辨槸9鏈?1鍙鳳紝鑰?鏈堟病鏈?1鍙鳳紝鎵浠ュ氨鍙樻垚浜?0鏈?鍙楓傝繖鏃朵綘鍦ㄥ彇month鐨勫煎氨鍙樻垚浜?錛堝崄鏈堬級(jí)銆?br /><br />鎯蟲槑鐧戒互鍚庯紝鎴戞嵍鑳擱】瓚沖晩錛?浠ュ悗鐢–alendar鐨勬椂鍊欒灝忓績(jī)浜?jiǎn)銆?img src ="http://www.tkk7.com/mstar/aggbug/66825.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mstar/" target="_blank">榛戠伒</a> 2006-08-31 11:59 <a href="http://www.tkk7.com/mstar/archive/2006/08/31/66825.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[緲昏瘧]Tomcat5.5 Class Loader HOW-TOhttp://www.tkk7.com/mstar/archive/2006/08/24/65511.html榛戠伒榛戠伒Thu, 24 Aug 2006 06:39:00 GMThttp://www.tkk7.com/mstar/archive/2006/08/24/65511.htmlhttp://www.tkk7.com/mstar/comments/65511.htmlhttp://www.tkk7.com/mstar/archive/2006/08/24/65511.html#Feedback0http://www.tkk7.com/mstar/comments/commentRss/65511.htmlhttp://www.tkk7.com/mstar/services/trackbacks/65511.html http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html

Tomcat Class Loader HOW-TO

褰揟omcat5鍚姩浠ュ悗錛屽畠鍒涘緩涓緋誨垪綾誨姞杞藉櫒銆傝繖浜涚被鍔犺澆鍣ㄤ互鐖跺瓙鍏崇郴緇勭粐鍦ㄤ竴璧鳳紝鐖剁被鍔犺澆鍣ㄥ湪瀛愮被鍔犺澆鍣ㄧ殑涓婇潰錛?/p>

聽聽聽聽聽 Bootstrap
聽聽聽聽聽聽聽聽聽 |
聽聽聽聽聽聽 System
聽聽聽聽聽聽聽聽聽 |
聽聽聽聽聽聽 Common
聽聽聽聽聽 /聽聽聽聽聽 \
Catalina聽聽 Shared
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 聽 /聽聽 \
聽聽聽聽聽聽聽 Webapp1聽 Webapp2 ...

榪欎簺綾誨姞杞藉櫒鎵鎵紨鐨勮鑹詫紝浠ュ強(qiáng)瀹冧滑鍙互瑙佸埌鐨勭被鍜岃祫婧愮殑瑙勫垯濡備笅錛?br />
濡備笂鍥炬墍紺猴紝Tomcat5 鍦ㄥ垵濮嬪寲鐨勬椂鍊欏垱寤哄涓嬬被鍔犺澆鍣細(xì)

Bootstrap
- 榪欎釜綾誨姞杞藉櫒鍙互鍔犺澆Java铏氭嫙鏈虹殑榪愯鏃跺熀紜綾伙紝浠ュ強(qiáng)鍦ㄧ郴緇熸墿灞曠洰褰?$JAVA_HOME/jre/lib/ext)涓殑鎵鏈塉ar鍖呬腑鐨勭被銆?strong>娉ㄦ剰錛嶄竴浜汮VM鍙兘鐢ㄥ涓被鍔犺澆鍣ㄦ潵瀹炵幇瀹冿紝鎴栬呭畠鏄牴鏈笉鑳借鐪嬭鐨勩?br />
System
- 榪欎釜綾誨姞杞藉櫒涓鑸彲浠ュ姞杞?font face="Courier New">CLASSPATH鐜鍙橀噺鐨勫唴瀹廣傛墍鏈夎繖涓被瀵逛簬Tomcat鍐呴儴鐨勭被鍜寃eb搴旂敤紼嬪簭鐨勯兘鏄彲瑙佺殑銆傚敖綆″姝わ紝鏍囧噯鐨凾omcat5鍚姩鑴氭湰($CATALINA_HOME/bin/catalina.sh聽鎴?%CATALINA_HOME%\bin\catalina.bat)閮戒細(xì)蹇界暐CLASSPATH鐜鍙橀噺錛屽彇鑰屼唬涔嬬殑鏄粠濡備笅浠撳簱鍔犺澆錛?/font>

  • $CATALINA_HOME/bin/bootstrap.jar - 鍖呭惈Tomcat5 鏈嶅姟鍣ㄥ垵濮嬪寲鐨刴ain()鏂規(guī)硶錛屼互鍙?qiáng)鎵闇鐨勭被鍔犺澆鍣ㄧ殑瀹炵幇綾匯?
  • $JAVA_HOME/lib/tools.jar - 鍖呮嫭鎶奐SP欏甸潰緙栬瘧鎴怱erlet綾繪墍闇鐨?javac"緙栬瘧鍣?
  • $CATALINA_HOME/bin/commons-logging-api.jar - Jakarta commons logging API.
  • $CATALINA_HOME/bin/commons-daemon.jar - Jakarta commons daemon API.
  • jmx.jar - The JMX 1.2 瀹炵幇.

Common - 榪欎釜綾誨姞杞藉櫒鍙互浣夸竴浜涢檮鍔犵殑綾誨浜?font face="Courier New">Tomcat鍐呴儴鐨勭被鍜寃eb搴旂敤紼嬪簭鍙銆傛甯告儏鍐典笅錛屽簲鐢ㄧ▼搴忎笉搴旇鏇挎崲瀹冦傛墍鏈?CATALINA_HOME/common/classes鐩綍涓嬬殑鏈墦鍖呯被鍜岃祫婧愶紝浠ュ強(qiáng)$CATALINA_HOME/commons/endorsed銆?CATALINA_HOME/commons/i18n銆?CATALINA_HOME/common/lib鐩綍涓嬬殑Jar鍖呬腑鐨勭被鍜岃祫婧愰兘鏄繖涓被鍔犺澆鍣ㄧ殑鍔犺澆瀵硅薄銆傞粯璁ゆ儏鍐碉紝鍖呮嫭濡備笅鍐呭錛?/font>聽聽聽聽聽聽聽聽聽

  • commons-el.jar - Jakarta commons el, Jasper鐢ㄧ殑EL琛ㄨ揪寮忓疄鐜?
  • jasper-compiler.jar - The JSP 2.0 緙栬瘧鍣?
  • jasper-compiler-jdt.jar - The Eclipse JDT Java 緙栬瘧鍣?
  • jasper-runtime.jar - The JSP 2.0 榪愯搴?
  • jsp-api.jar - The JSP 2.0 API.
  • naming-common.jar - Tomcat5鐨凧NDI 瀹炵幇錛岀敤浜庡唴瀛樺懡鍚嶇幆澧?
  • naming-factory.jar - Tomcat5鐨凧NDI 瀹炵幇錛岀敤浜庝紒涓氱駭璧勬簮寮曠敤(EJB, connection pools).
  • naming-factory-dbcp.jar - Jakarta commons DBCP, 涓篧eb搴旂敤紼嬪簭鎻愪緵JDBC榪炴帴姹犮傝繖涓被宸茬粡浠庨粯璁ょ殑org.apache.commons鍖呬腑縐誨嚭銆?
  • naming-java.jar -聽 java鍛藉悕絀洪棿澶勭悊鍣?
  • naming-resources.jar - The specialized JNDI naming context implementation used to represent the static resources of a web application. This is not related to the support of the J2EE ENC, and cannot be removed.
  • servlet-api.jar - The Servlet 2.4 API.
  • tomcat-i18n-**.jar - Optional JARs containing resource bundles for other languages. As default bundles are also included in each individual JAR, they can be safely removed if no internationalization of messages is needed.

Catalina - 榪欎釜綾誨姞杞藉櫒涓昏鍔犺澆Tomcat5鑷繁鎵闇瑕佺殑綾誨拰璧勬簮銆傝繖浜涚被鍜岃祫婧愬浜嶹eb搴旂敤紼嬪簭鏄畬鍏ㄤ笉鍙鐨勩傚湪$CATALINA_HOME/server/classes鐩綍涓嬬殑鎵鏈夌被鍜岃祫婧愶紝$CATALINA_HOME/server/lib涓嬬殑鎵鏈塉ar鍖呬腑綾誨拰璧勬簮鏄繖涓被鍔犺澆鍣ㄧ殑鍔犺澆瀵硅薄銆傞粯璁ゆ儏鍐碉紝鍖呮嫭涓涓嬪唴瀹癸細(xì)

  • catalina.jar - Tomcat5涓瑿atalina Servlet瀹瑰櫒鐨勫疄鐜伴儴鍒嗐?
  • catalina-ant.jar - 鍦ㄧ鐞唚eb搴旂敤紼嬪簭鏃惰鐢ㄥ掔殑涓浜汚nt浠誨姟銆?
  • catalina-optional.jar - 涓浜汣atalina鍙夌粍浠躲?
  • commons-modeler.jar - Tomcat閫氳繃JMX鏆撮湶鍏跺唴閮ㄥ璞℃槸鐢ㄧ殑涓浜汳Bean瀹炵幇銆?
  • servlets-xxxxx.jar - 榪欎簺綾誨悓鍐呴儴鐨凷ervlet涓璧鋒彁渚汿omcat鐨勯儴鍒嗗姛鑳斤紝瀹冧滑閮芥槸鐙珛鐨勶紝鎵浠ュ鏋滀笉闇瑕佺浉搴旂殑鏈嶅姟鍙互灝嗗叾鍒犻櫎銆傛垨鑰呭畠浠彲浠ヤ粠灞炰簬鐗瑰畾鐨勫畨鍏ㄧ鐞嗗櫒銆?
  • tomcat-coyote.jar - Coyote API.銆?
  • tomcat-http.jar - 鏍囧噯鐨凧ava HTTP/1.1 榪炴帴鍣?銆?
  • tomcat-ajp.jar -聽AJP web聽鏈嶅姟鍣ㄧ殑榪炴帴鍣紝涓鑸敤浜嶢pache錛宨Planet iAS鍜?iWS.銆?
  • tomcat-util.jar - Tomcat榪炴帴鍣ㄩ渶瑕佺殑宸ュ叿綾匯?

Shared - 榪欎釜綾誨姞杞藉櫒鐢ㄤ簬鎶婁竴浜涚被鍜岃祫婧愬叡浜粰鎵鏈?/strong>鐨剋eb搴旂敤紼嬪簭銆?闄ら潪Tomcat鍐呴儴鐨勭被涔熼渶瑕佽闂繖浜涚被錛屽湪榪欑鎯呭喌涓嬩綘搴旇鎶婂畠浠斁鍦?strong>Common綾誨姞杞借兘鍔犺澆鐨勫湴鏂?. 鍦?font face="Courier New">$CATALINA_BASE/shared/classes鐩綍涓嬬殑鎵鏈夋湭鎵撳寘綾誨拰璧勬簮錛屼互鍙?CATALINA_BASE/shared/lib鐩綍涓嬬殑鎵鏈塉ar鍖呬腑鐨勭被鍜岃祫婧愬彲浠ヨ鍏跺姞杞姐傚鏋滈氳繃$CATALINA_BASE鐜鍙橀噺鏉ヤ粠鍚屼竴涓猼omcat紼嬪簭榪愯浜?jiǎn)澶氫釜鍦ㄥ疄渚嬪Q岄偅涔堣繖涓被鍔犺澆鍣ㄧ殑浠撳簱鏄浉瀵逛簬$CATALINA_BASE鑰屼笉鏄?CATALINA_HOME銆?/font>聽

WebappX - 緋葷粺浼?xì)湄?fù)閮ㄧ講鍦ㄤ竴涓猅omcat瀹炰緥涓殑姣忎釜搴旂敤紼嬪簭鍒涘緩涓涓繖鏍風(fēng)殑綾誨姞杞藉櫒錛屽畠浠負(fù)鎵灞炵殑搴旂敤紼嬪簭鍔犺澆綾匯傛墍鏈変綘鐨剋eb搴旂敤紼嬪簭鍖呯殑/WEB-INF/classes鐩綍涓嬬殑綾誨拰璧勬簮錛屼互鍙?/font>
/WEB-INF/lib 鐩綍涓嬬殑鎵鏈塉ar鍖呬腑鐨勭被鍜岃祫婧愭槸榪欎釜綾葷殑鍔犺澆瀵硅薄銆傝繖浜涚被鍜岃祫婧愪粎瀵硅繖涓簲鐢ㄧ▼搴忓彲瑙侊紝騫朵笖榪欎釜搴旂敤紼嬪簭涔熺湅涓嶈鍏朵粬搴旂敤紼嬪簭鐨勭被鍜岃祫婧愩?br />
灝卞儚涓婇潰鎵鎻忚堪鐨勶紝web搴旂敤紼嬪簭鐨勭被鍔犺澆鐨勫姞杞芥祦紼嬩笌榛樿鐨凧ava 2鐨勭被璁拌澆鎵樼妯″瀷鏄?strong>涓嶄竴鏍?/strong>鐨勩傚綋鏈変竴涓姹傞渶瑕佸簲鐢ㄧ▼搴忕殑WebappX 綾誨姞杞藉櫒鍔犺澆涓涓被鐨勬椂鍊欙紝榪欎釜綾誨姞杞藉櫒鏄?strong>棣栧厛鍒拌嚜宸辯殑浠撳簱涓煡鎵撅紝鑰屼笉鏄厛浜ょ粰涓婇潰鐨勭被鍔犺澆鍣ㄦ煡鎵俱傝繖閲屾湁涓浜涗緥澶栥侸RE鐨勫熀紜綾繪槸涓嶈兘琚鐩栫殑銆傚浜庡叾浠栦竴浜涚被錛堝J2SE 1.4+涓殑XML瑙f瀽鍣ㄧ粍浠訛級(jí)錛屽彲浠ヤ嬌鐢↗2SE1.4鐨勭鍚嶇壒鎬с傛渶鍚庝換浣曞寘鎷瑂ervlet API綾葷殑Jar鍖呬細(xì)琚拷鐣ャ俆omcat5涓殑鍏朵粬鐨勭被鍔犺澆鍣ㄤ嬌鐢ㄦ甯告墭綆℃ā寮忋?/p>

榪欐牱鍦ㄤ竴涓獁eb搴旂敤紼嬪簭涓紝綾誨拰璧勬簮鐨勫姞杞介『搴忔槸榪欐牱錛?/p>

  • Bootstrap classes of your JVM
  • System class loader classses (described above)
  • /WEB-INF/classes of your web application
  • /WEB-INF/lib/*.jar of your web application
  • $CATALINA_HOME/common/classes
  • $CATALINA_HOME/common/endorsed/*.jar
  • $CATALINA_HOME/common/i18n/*.jar
  • $CATALINA_HOME/common/lib/*.jar
  • $CATALINA_BASE/shared/classes
  • $CATALINA_BASE/shared/lib/*.jar


榛戠伒 2006-08-24 14:39 鍙戣〃璇勮
]]>
ClassLoader涓殑鏂規(guī)硶http://www.tkk7.com/mstar/archive/2006/08/24/65508.html榛戠伒榛戠伒Thu, 24 Aug 2006 06:16:00 GMThttp://www.tkk7.com/mstar/archive/2006/08/24/65508.htmlhttp://www.tkk7.com/mstar/comments/65508.htmlhttp://www.tkk7.com/mstar/archive/2006/08/24/65508.html#Feedback2http://www.tkk7.com/mstar/comments/commentRss/65508.htmlhttp://www.tkk7.com/mstar/services/trackbacks/65508.htmlhttp://www.xici.net/b228402/d11821837.htm

鏂規(guī)硶 loadClass

ClassLoader.loadClass() 鏄?ClassLoader 鐨勫叆鍙g偣銆傚叾鐗瑰緛濡備笅錛?br />Class loadClass( String name, boolean resolve );
name 鍙傛暟鎸囧畾浜?JVM 闇瑕佺殑綾葷殑鍚嶇О錛岃鍚嶇О浠ュ寘琛ㄧず娉曡〃紺猴紝濡?Foo 鎴?java.lang.Object銆?resolve 鍙傛暟鍛婅瘔鏂規(guī)硶鏄惁闇瑕佽В鏋愮被銆傚湪鍑嗗鎵ц綾諱箣鍓嶏紝搴旇冭檻綾昏В鏋愩傚茍涓嶆繪槸闇瑕佽В鏋愩傚鏋?JVM 鍙渶瑕佺煡閬撹綾繪槸鍚﹀瓨鍦ㄦ垨鎵懼嚭璇ョ被鐨勮秴綾伙紝閭d箞灝變笉闇瑕佽В鏋愩?br />鍦?Java 鐗堟湰 1.1 鍜屼互鍓嶇殑鐗堟湰涓紝loadClass 鏂規(guī)硶鏄垱寤哄畾鍒剁殑 ClassLoader 鏃跺敮涓闇瑕佽鐩栫殑鏂規(guī)硶銆傦紙Java 2 涓?ClassLoader 鐨勫彉鍔ㄦ彁渚涗簡(jiǎn)鍏充簬 Java 1.2 涓?findClass() 鏂規(guī)硶鐨勪俊鎭傦級(jí)


鏂規(guī)硶 defineClass


defineClass 鏂規(guī)硶鏄?ClassLoader 鐨勪富瑕佽瘈紿嶃傝鏂規(guī)硶鎺ュ彈鐢卞師濮嬪瓧鑺傜粍鎴愮殑鏁扮粍騫舵妸瀹冭漿鎹㈡垚 Class 瀵硅薄銆傚師濮嬫暟緇勫寘鍚浠庢枃浠剁郴緇熸垨緗戠粶瑁呭叆鐨勬暟鎹?br />
defineClass 綆$悊 JVM 鐨勮澶氬鏉傘佺縐樺拰鍊氳禆浜庡疄鐜扮殑鏂歸潰 -- 瀹冩妸瀛楄妭鐮佸垎鏋愭垚榪愯鏃舵暟鎹粨鏋勩佹牎楠屾湁鏁堟х瓑絳夈備笉蹇呮媴蹇?jī)锛屾?zhèn)ㄦ棤闇浜茶嚜緙栧啓瀹冦備簨瀹炰笂錛屽嵆浣挎?zhèn)ㄦ儗櫐仒q欎箞鍋氫篃涓嶈兘瑕嗙洊瀹冿紝鍥犱負(fù)瀹冨凡琚爣璁版垚鏈緇堢殑銆?br />

鏂規(guī)硶 findSystemClass


findSystemClass 鏂規(guī)硶浠庢湰鍦版枃浠剁郴緇熻鍏ユ枃浠躲傚畠鍦ㄦ湰鍦版枃浠剁郴緇熶腑瀵繪壘綾繪枃浠訛紝濡傛灉瀛樺湪錛屽氨浣跨敤 defineClass 灝嗗師濮嬪瓧鑺傝漿鎹㈡垚 Class 瀵硅薄錛屼互灝嗚鏂囦歡杞崲鎴愮被銆傚綋榪愯 Java 搴旂敤紼嬪簭鏃訛紝榪欐槸 JVM 姝e父瑁呭叆綾葷殑緙虹渷鏈哄埗銆傦紙Java 2 涓?ClassLoader 鐨勫彉鍔ㄦ彁渚涗簡(jiǎn)鍏充簬 Java 鐗堟湰 1.2 榪欎釜榪囩▼鍙樺姩鐨勮緇嗕俊鎭傦級(jí)

瀵逛簬瀹氬埗鐨?ClassLoader錛屽彧鏈夊湪灝濊瘯鍏跺畠鏂規(guī)硶瑁呭叆綾諱箣鍚庯紝鍐嶄嬌鐢?findSystemClass銆傚師鍥犲緢綆鍗曪細(xì)ClassLoader 鏄礋璐f墽琛岃鍏ョ被鐨勭壒孌婃楠わ紝涓嶆槸璐熻矗鎵鏈夌被銆備緥濡傦紝鍗充嬌 ClassLoader 浠庤繙紼嬬殑 Web 绔欑偣瑁呭叆浜?jiǎn)鏌愪簺绫诲Q屼粛鐒墮渶瑕佸湪鏈湴鏈哄櫒涓婅鍏ュぇ閲忕殑鍩烘湰 Java 搴撱傝岃繖浜涚被涓嶆槸鎴戜滑鎵鍏沖績(jī)鐨勶紝鎵浠ヨ JVM 浠ョ己鐪佹柟寮忚鍏ュ畠浠細(xì)浠庢湰鍦版枃浠剁郴緇熴傝繖灝辨槸 findSystemClass 鐨勭敤閫斻?br />
鍏跺伐浣滄祦紼嬪涓嬶細(xì)
璇鋒眰瀹氬埗鐨?ClassLoader 瑁呭叆綾匯?br />媯(gè)鏌ヨ繙紼?Web 绔欑偣錛屾煡鐪嬫槸鍚︽湁鎵闇瑕佺殑綾匯?br />濡傛灉鏈夛紝閭d箞濂斤紱鎶撳彇榪欎釜綾伙紝瀹屾垚浠誨姟銆?br />濡傛灉娌℃湁錛屽亣瀹氳繖涓被鏄湪鍩烘湰 Java 搴撲腑錛岄偅涔堣皟鐢?findSystemClass錛屼嬌瀹冧粠鏂囦歡緋葷粺瑁呭叆璇ョ被銆?br />

鍦ㄥぇ澶氭暟瀹氬埗 ClassLoaders 涓紝棣栧厛璋冪敤 findSystemClass 浠ヨ妭鐪佸湪鏈湴灝卞彲浠ヨ鍏ョ殑璁稿 Java 搴撶被鑰岃鍦ㄨ繙紼?Web 绔欑偣涓婃煡鎵炬墍鑺辯殑鏃墮棿銆傜劧鑰岋紝姝e錛屽湪涓嬩竴绔犺妭鎵鐪嬪埌鐨勶紝鐩村埌紜俊鑳借嚜鍔ㄧ紪璇戞垜浠殑搴旂敤紼嬪簭浠g爜鏃訛紝鎵嶈 JVM 浠庢湰鍦版枃浠剁郴緇熻鍏ョ被銆?br />

鏂規(guī)硶 resolveClass
姝e鍓嶉潰鎵鎻愬埌鐨勶紝鍙互涓嶅畬鍏ㄥ湴錛堜笉甯﹁В鏋愶級(jí)瑁呭叆綾伙紝涔熷彲浠ュ畬鍏ㄥ湴錛堝甫瑙f瀽錛夎鍏ョ被銆傚綋緙栧啓鎴戜滑鑷繁鐨?loadClass 鏃訛紝鍙互璋冪敤 resolveClass錛岃繖鍙栧喅浜?loadClass 鐨?resolve 鍙傛暟鐨勫箋?br />

鏂規(guī)硶 findLoadedClass
findLoadedClass 鍏呭綋涓涓紦瀛橈細(xì)褰撹姹?loadClass 瑁呭叆綾繪椂錛屽畠璋冪敤璇ユ柟娉曟潵鏌ョ湅 ClassLoader 鏄惁宸茶鍏ヨ繖涓被錛岃繖鏍峰彲浠ラ伩鍏嶉噸鏂拌鍏ュ凡瀛樺湪綾繪墍閫犳垚鐨勯夯鐑?chǔ)銆傚簲棣栧厛璋冪敤璇ユ柟娉曘?br />

榛戠伒 2006-08-24 14:16 鍙戣〃璇勮
]]>
ClassLoader鍘熺悊http://www.tkk7.com/mstar/archive/2006/08/24/65505.html榛戠伒榛戠伒Thu, 24 Aug 2006 06:01:00 GMThttp://www.tkk7.com/mstar/archive/2006/08/24/65505.htmlhttp://www.tkk7.com/mstar/comments/65505.htmlhttp://www.tkk7.com/mstar/archive/2006/08/24/65505.html#Feedback6http://www.tkk7.com/mstar/comments/commentRss/65505.htmlhttp://www.tkk7.com/mstar/services/trackbacks/65505.htmlClassLoader鍘熺悊

http://jamesdu.blogchina.com/349567.html聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽

JVM瑙勮寖瀹氫箟浜?jiǎn)涓たU嶇被鍨嬬殑綾昏杞藉櫒錛?strong>鍚姩鍐呰杞藉櫒(bootstrap)鍜岀敤鎴瘋嚜瀹氫箟瑁呰澆鍣?/strong>(user-defined class loader)銆?




涓錛幝犅犅?ClassLoader鍩烘湰姒傚康
1錛?/strong>ClassLoader鍒嗙被
綾昏杞藉櫒鏄敤鏉ユ妸綾?class)瑁呰澆榪汮VM鐨勩?br />JVM瑙勮寖瀹氫箟浜?jiǎn)涓たU嶇被鍨嬬殑綾昏杞藉櫒錛?strong>鍚姩鍐呰杞藉櫒
(bootstrap)鍜岀敤鎴瘋嚜瀹氫箟瑁呰澆鍣?/strong>(user-defined class loader)銆?


JVM鍦ㄨ繍琛屾椂浼?xì)漶旂敓涓変釜ClassLoader:Bootstrap聽ClassLoader銆丒xtension聽ClassLoader鍜孉ppClassLoader.Bootstrap鏄敤C++緙栧啓鐨勶紝鎴戜滑鍦↗ava涓湅涓嶅埌瀹?鏄痭ull,鏄疛VM鑷甫鐨勭被瑁呰澆鍣紝鐢ㄦ潵瑁呰澆鏍稿績(jī)綾誨簱錛屽java.lang.*絳夈?br />AppClassLoader鐨?/strong>Parent鏄?/strong>ExtClassLoader錛岃?/strong>ExtClassLoader鐨?/strong>Parent涓?/strong>Bootstrap聽ClassLoader銆?/strong>

Java鎻愪緵浜?jiǎn)鎶借薄绫?/strong>ClassLoader錛屾墍鏈夌敤鎴瘋嚜瀹氫箟綾昏杞藉櫒閮藉疄渚嬪寲鑷?/strong>ClassLoader鐨勫瓙綾匯?/strong> System Class Loader鏄竴涓壒孌婄殑鐢ㄦ埛鑷畾涔夌被瑁呰澆鍣紝鐢?/strong>JVM鐨勫疄鐜拌呮彁渚涳紝鍦ㄧ紪紼嬭呬笉鐗瑰埆鎸囧畾瑁呰澆鍣ㄧ殑鎯呭喌涓嬮粯璁よ杞界敤鎴風(fēng)被銆傜郴緇熺被瑁呰澆鍣ㄥ彲浠ラ氳繃ClassLoader.getSystemClassLoader() 鏂規(guī)硶寰楀埌銆?br />聽
渚?錛屾祴璇曚綘鎵浣跨敤鐨凧VM鐨凜lassLoader
/*LoaderSample1.java*/

public class 聽LoaderSample1聽{
聽聽聽聽
public static void 聽main(String[]聽args)聽{
聽聽聽聽聽聽聽聽Class聽c;
聽聽聽聽聽聽聽聽ClassLoader聽cl;
聽聽聽聽聽聽聽聽cl聽
= 聽ClassLoader.getSystemClassLoader();
聽聽聽聽聽聽聽聽System.out.println(cl);
聽聽聽聽聽聽聽聽
while 聽(cl聽 != null )聽{
聽聽聽聽聽聽聽聽聽聽聽聽cl聽
= 聽cl.getParent();
聽聽聽聽聽聽聽聽聽聽聽聽System.out.println(cl);
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
try 聽{
聽聽聽聽聽聽聽聽聽聽聽聽c聽
= 聽Class.forName( " java.lang.Object " );
聽聽聽聽聽聽聽聽聽聽聽聽cl聽
= 聽c.getClassLoader();
聽聽聽聽聽聽聽聽聽聽聽聽System.out.println(
" java.lang.Object's聽loader聽is聽 " + 聽cl);
聽聽聽聽聽聽聽聽聽聽聽聽c聽
= 聽Class.forName( " LoaderSample1 " );
聽聽聽聽聽聽聽聽聽聽聽聽cl聽
= 聽c.getClassLoader();
聽聽聽聽聽聽聽聽聽聽聽聽System.out.println(
" LoaderSample1's聽loader聽is聽 " + 聽cl);
聽聽聽聽聽聽聽聽}聽
catch 聽(Exception聽e)聽{
聽聽聽聽聽聽聽聽聽聽聽聽e.printStackTrace();
聽聽聽聽聽聽聽聽}
聽聽聽聽}
}


鍦ㄦ垜鐨勬満鍣ㄤ笂(Sun Java 1.4.2)鐨勮繍琛岀粨鏋?br />sun.misc.Launcher$AppClassLoader@1a0c10f
sun.misc.Launcher$ExtClassLoader@e2eec8
null
java.lang.Object's loader is null
LoaderSample1's loader is sun.misc.Launcher$AppClassLoader@1a0c10f

絎竴琛岃〃紺猴紝緋葷粺綾昏杞藉櫒瀹炰緥鍖栬嚜綾籹un.misc.Launcher$AppClassLoader
絎簩琛岃〃紺猴紝緋葷粺綾昏杞藉櫒鐨刾arent瀹炰緥鍖栬嚜綾籹un.misc.Launcher$ExtClassLoader
絎笁琛岃〃紺猴紝緋葷粺綾昏杞藉櫒parent鐨刾arent涓篵ootstrap
絎洓琛岃〃紺猴紝鏍稿績(jī)綾籮ava.lang.Object鏄敱bootstrap瑁呰澆鐨?
絎簲琛岃〃紺猴紝鐢ㄦ埛綾籐oaderSample1鏄敱緋葷粺綾昏杞藉櫒瑁呰澆鐨?


浜岋紟parent delegation妯″瀷
浠?.2鐗堟湰寮濮嬶紝Java寮曞叆浜?jiǎn)鍙屼翰濮旀墭妯″瀷锛屼粠鑰屾洿濂界殑淇濊瘉Java騫沖彴鐨勫畨鍏ㄣ?strong>鍦ㄦ妯″瀷涓嬶紝褰撲竴涓杞藉櫒琚姹傝杞芥煇涓被鏃訛紝瀹冮鍏堝鎵樿嚜宸辯殑
parent鍘昏杞斤紝鑻?/strong>parent鑳借杞斤紝鍒欒繑鍥炶繖涓被鎵瀵瑰簲鐨?/strong>Class瀵硅薄錛岃嫢parent涓嶈兘瑁呰澆錛屽垯鐢?/strong>parent鐨勮姹傝呭幓瑁呰澆銆?br />
鍥?1 parent delegation妯″瀷
濡傚浘1鎵紺猴紝loader2鐨刾arent涓簂oader1錛宭oader1鐨刾arent涓簊ystem class loader銆傚亣璁緇oader2琚姹傝杞界被MyClass錛屽湪parent delegation妯″瀷涓嬶紝loader2棣栧厛璇鋒眰loader1浠d負(fù)瑁呰澆錛宭oader1鍐嶈姹傜郴緇熺被瑁呰澆鍣ㄥ幓瑁呰澆MyClass銆傝嫢緋葷粺瑁呰澆鍣ㄨ兘鎴愬姛瑁呰澆錛屽垯灝哅yClass鎵瀵瑰簲鐨凜lass瀵硅薄鐨剅eference榪斿洖緇檒oader1錛宭oader1鍐嶅皢reference榪斿洖緇檒oader2錛屼粠鑰屾垚鍔熷皢綾籑yClass瑁呰澆榪涜櫄鎷熸満銆傝嫢緋葷粺綾昏杞藉櫒涓嶈兘瑁呰澆MyClass錛宭oader1浼?xì)灏濊瘯瑁呰浇MyClass錛岃嫢loader1涔熶笉鑳芥垚鍔熻杞斤紝loader2浼?xì)灏濊瘯瑁呰浇銆傝嫢鎵鏈夌殑parent鍙?qiáng)loader2鏈韓閮戒笉鑳借杞斤紝鍒欒杞藉け璐ャ?br />聽
鑻ユ湁涓涓兘鎴愬姛瑁呰澆錛屽疄闄呰杞界殑綾昏杞藉櫒琚О涓哄畾涔夌被瑁呰澆鍣紝鎵鏈夎兘鎴愬姛榪斿洖Class瀵硅薄鐨勮杞藉櫒錛堝寘鎷畾涔夌被瑁呰澆鍣級(jí)琚О涓哄垵濮嬬被瑁呰澆鍣ㄣ傚鍥?鎵紺猴紝鍋囪loader1瀹為檯瑁呰澆浜?jiǎn)MyClass錛屽垯loader1涓篗yClass鐨勫畾涔夌被瑁呰澆鍣紝loader2鍜宭oader1涓篗yClass鐨勫垵濮嬬被瑁呰澆鍣ㄣ?br />聽
闇瑕佹寚鍑虹殑鏄紝Class Loader鏄璞★紝瀹冪殑鐖跺瓙鍏崇郴鍜岀被鐨勭埗瀛愬叧緋繪病鏈変換浣曞叧緋匯?br />聽
閭d箞parent delegation妯″瀷涓轟粈涔堟洿瀹夊叏浜?jiǎn)锛?strong>鍥犱負(fù)鍦ㄦ妯″瀷涓嬬敤鎴瘋嚜瀹氫箟鐨勭被瑁呰澆鍣ㄤ笉鍙兘瑁呰澆搴旇鐢辯埗浜茶杞藉櫒瑁呰澆鐨勫彲闈犵被錛屼粠鑰岄槻姝笉鍙潬鐢氳嚦鎭舵剰鐨勪唬鐮佷唬鏇跨敱鐖朵翰瑁呰澆鍣ㄨ杞界殑鍙潬浠g爜銆傚疄闄呬笂錛岀被瑁呰澆鍣ㄧ殑緙栧啓鑰呭彲浠ヨ嚜鐢遍夋嫨涓嶇敤鎶婅姹傚鎵樼粰
parent錛屼絾姝e涓婃墍璇達(dá)紝浼?xì)甯︽潵瀹夊叏鐨勯棶棰樸?/strong>


涓夛紟鍛藉悕絀洪棿鍙?qiáng)鍏朵綔鐢?/strong>
姣忎釜綾昏杞藉櫒鏈夎嚜宸辯殑鍛藉悕絀洪棿錛屽懡鍚嶇┖闂寸敱鎵鏈変互姝よ杞藉櫒涓哄垱濮嬬被瑁呰澆鍣ㄧ殑綾葷粍鎴愩備笉鍚屽懡鍚嶇┖闂寸殑涓や釜綾繪槸涓嶅彲瑙佺殑錛屼絾鍙寰楀埌綾繪墍瀵瑰簲鐨凜lass瀵硅薄鐨剅eference錛岃繕鏄彲浠ヨ闂彟涓鍛藉悕絀洪棿鐨勭被銆?br />聽
渚?婕旂ず浜?jiǎn)涓涓懡鍚嶇┖闂寸殑綾誨浣曚嬌鐢ㄥ彟涓鍛藉悕絀洪棿鐨勭被銆傚湪渚嬪瓙涓紝LoaderSample2鐢辯郴緇熺被瑁呰澆鍣ㄨ杞斤紝LoaderSample3鐢辮嚜瀹氫箟鐨勮杞藉櫒loader璐熻矗瑁呰澆錛屼袱涓被涓嶅湪鍚屼竴鍛藉悕絀洪棿錛屼絾LoaderSample2寰楀埌浜?jiǎn)LoaderSample3鎵瀵瑰簲鐨凜lass瀵硅薄鐨剅eference錛屾墍浠ュ畠鍙互璁塊棶LoaderSampl3涓叕鍏辯殑鎴愬憳(濡俛ge)銆?br />渚?涓嶅悓鍛藉悕絀洪棿鐨勭被鐨勮闂?br />/*LoaderSample2.java*/

import 聽java.net. * ;
import 聽java.lang.reflect. * ;
public class 聽LoaderSample2聽{
聽聽聽聽
public static void 聽main(String[]聽args)聽{
聽聽聽聽聽聽聽聽
try 聽{
聽聽聽聽聽聽聽聽聽聽聽聽String聽path聽
= 聽System.getProperty( " user.dir " );
聽聽聽聽聽聽聽聽聽聽聽聽URL[]聽us聽
= 聽{ new 聽URL( " file:// " + 聽path聽 + " /sub/ " )};
聽聽聽聽聽聽聽聽聽聽聽聽ClassLoader聽loader聽
= new 聽URLClassLoader(us);
聽聽聽聽聽聽聽聽聽聽聽聽Class聽c聽
= 聽loader.loadClass( " LoaderSample3 " );
聽聽聽聽聽聽聽聽聽聽聽聽Object聽o聽
= 聽c.newInstance();
聽聽聽聽聽聽聽聽聽聽聽聽Field聽f聽
= 聽c.getField( " age " );
聽聽聽聽聽聽聽聽聽聽聽聽
int 聽age聽 = 聽f.getInt(o);
聽聽聽聽聽聽聽聽聽聽聽聽System.out.println(
" age聽is聽 " + 聽age);
聽聽聽聽聽聽聽聽}聽
catch 聽(Exception聽e)聽{
聽聽聽聽聽聽聽聽聽聽聽聽e.printStackTrace();
聽聽聽聽聽聽聽聽}
聽聽聽聽}
}


/*sub/Loadersample3.java*/

public class 聽LoaderSample3聽{
聽聽聽聽
static 聽{
聽聽聽聽聽聽聽聽System.out.println(
" LoaderSample3聽loaded " );
聽聽聽聽}
聽聽聽聽
public int 聽age聽 = 30 ;
}

緙栬瘧錛歫avac LoaderSample2.java; javac sub/LoaderSample3.java
榪愯錛歫ava LoaderSample2
LoaderSample3 loaded
age is 30
浠庤繍琛岀粨鏋滀腑鍙互鐪嬪嚭錛屽湪綾籐oaderSample2涓彲浠ュ垱寤哄浜庡彟涓鍛藉悕絀洪棿鐨勭被LoaderSample3涓殑瀵硅薄騫跺彲浠ヨ闂叾鍏叡鎴愬憳age銆?br />榪愯鏃跺寘(runtime package)
鐢卞悓涓綾昏杞藉櫒瀹氫箟瑁呰澆鐨勫睘浜庣浉鍚屽寘鐨勭被緇勬垚浜?jiǎn)杩愯鏃跺寘锛屽啗_畾涓や釜綾繪槸涓嶆槸灞炰簬鍚屼竴涓繍琛屾椂鍖咃紝涓嶄粎瑕佺湅瀹冧滑鐨勫寘鍚嶆槸鍚︾浉鍚岋紝榪樿鐪嬬殑瀹氫箟綾昏杞藉櫒鏄惁鐩稿悓銆傚彧鏈夊睘浜庡悓涓榪愯鏃跺寘鐨勭被鎵嶈兘浜掔浉璁塊棶鍖呭彲瑙佺殑綾誨拰鎴愬憳銆傝繖鏍風(fēng)殑闄愬埗閬垮厤浜?jiǎn)鐢ㄦ埊倗忿q殑浠g爜鍐掑厖鏍稿績(jī)綾誨簱鐨勭被璁塊棶鏍稿績(jī)綾誨簱鍖呭彲瑙佹垚鍛樼殑鎯呭喌銆傚亣璁劇敤鎴瘋嚜宸卞畾涔変簡(jiǎn)涓涓被java.lang.Yes錛屽茍鐢ㄧ敤鎴瘋嚜瀹氫箟鐨勭被瑁呰澆鍣ㄨ杞斤紝鐢變簬java.lang.Yes鍜屾牳蹇?jī)绫诲簱java.lang.*鐢變笉鍚岀殑瑁呰澆鍣ㄨ杞斤紝瀹冧滑灞炰簬涓嶅悓鐨勮繍琛屾椂鍖咃紝鎵浠ava.lang.Yes涓嶈兘璁塊棶鏍稿績(jī)綾誨簱java.lang涓被鐨勫寘鍙鐨勬垚鍛樸?

鎬葷粨
鍛藉悕絀洪棿騫舵病鏈夊畬鍏ㄧ姝㈠睘浜庝笉鍚岀┖闂寸殑綾葷殑浜掔浉璁塊棶錛屽弻浜插鎵樻ā鍨嬪姞寮轟簡(jiǎn)Java鐨勫畨鍏紝榪愯鏃跺寘澧炲姞浜?jiǎn)瀵瑰寘鍙鎴愬憳鐨勪繚鎶ゃ?/strong>

浜岋紟聽聽聽 鎵╁睍ClassLoader鏂規(guī)硶
鎴戜滑鐩殑鏄粠鏈湴鏂囦歡緋葷粺浣跨敤鎴戜滑瀹炵幇鐨勭被瑁呰澆鍣ㄨ杞戒竴涓被銆?strong>涓轟簡(jiǎn)鍒涘緩鑷繁鐨勭被瑁呰澆鍣ㄦ垜浠簲璇ユ墿灞?/strong>ClassLoader綾伙紝榪欐槸涓涓娊璞$被銆傛垜浠垱寤轟竴涓?/strong>FileClassLoader extends ClassLoader銆傛垜浠渶瑕佽鐩?/strong>ClassLoader涓殑findClass(String name)鏂規(guī)硶錛岃繖涓柟娉曢氳繃綾葷殑鍚嶅瓧鑰屽緱鍒頒竴涓?/strong>Class瀵硅薄銆?/strong>

聽聽聽聽 public 聽Class聽findClass(String聽name)
聽聽聽聽{
聽聽聽聽聽聽聽聽
byte []聽data聽 = 聽loadClassData(name);
聽聽聽聽聽聽聽聽
return 聽defineClass(name,聽data,聽 0 ,聽data.length);
聽聽聽聽}


聽聽聽鎴戜滑榪樺簲璇ユ彁渚涗竴涓柟娉昹oadClassData(String name)錛岄氳繃綾葷殑鍚嶇О榪斿洖class鏂囦歡鐨勫瓧
鑺傛暟緇勩傜劧鍚庝嬌鐢–lassLoader鎻愪緵鐨刣efineClass()鏂規(guī)硶鎴戜滑灝卞彲浠ヨ繑鍥濩lass瀵硅薄浜?jiǎn)銆?/strong>

聽聽聽聽 public byte []聽loadClassData(String聽name)
聽聽聽聽{
聽聽聽聽聽聽聽聽FileInputStream聽fis聽
= null ;
聽聽聽聽聽聽聽聽
byte []聽data聽 = null ;
聽聽聽聽聽聽聽聽
try
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽fis聽
= new 聽FileInputStream( new 聽File(drive聽 + 聽name聽 + 聽fileType));
聽聽聽聽聽聽聽聽聽聽聽聽ByteArrayOutputStream聽baos聽
= new 聽ByteArrayOutputStream();
聽聽聽聽聽聽聽聽聽聽聽聽
int 聽ch聽 = 0 ;
聽聽聽聽聽聽聽聽聽聽聽聽
while 聽((ch聽 = 聽fis.read())聽 != - 1 )
聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽baos.write(ch);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽data聽
= 聽baos.toByteArray();
聽聽聽聽聽聽聽聽}聽
catch 聽(IOException聽e)
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽e.printStackTrace();
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽
return 聽data;
聽聽聽聽}


榛戠伒 2006-08-24 14:01 鍙戣〃璇勮
]]>
utf-8 緙栫爜闂http://www.tkk7.com/mstar/archive/2006/08/23/65265.html榛戠伒榛戠伒Wed, 23 Aug 2006 06:09:00 GMThttp://www.tkk7.com/mstar/archive/2006/08/23/65265.htmlhttp://www.tkk7.com/mstar/comments/65265.htmlhttp://www.tkk7.com/mstar/archive/2006/08/23/65265.html#Feedback0http://www.tkk7.com/mstar/comments/commentRss/65265.htmlhttp://www.tkk7.com/mstar/services/trackbacks/65265.html http://blog.csdn.net/zhangxiaoxiang/archive/2006/08/22/1106714.aspx

闂錛?br />
public class TestUTF8
{
聽聽 public static void main(String [] args) throws Exception
聽聽 {
聽聽聽聽聽 聽byte[] bytes = {(byte)0xC0,(byte)0xB1};
聽聽聽聽聽聽 String str = new String(bytes,"UTF-8");
聽聽聽聽聽聽 System.out.println(str.getBytes("UTF-8").length);
聽聽 }
}

紼嬪簭榪愯鍚庢墦鍗扮殑緇撴灉濡備笅錛?br />1

榪欎釜紼嬪簭灝?涓や釜 瀛楄妭鐨刡ytes鏁扮粍鎸塙TF-8緙栫爜杞崲鎴愬瓧絎︿覆錛屽啀灝嗙粨鏋滃瓧絎︿覆杞崲鎴怳TF-8緙栫爜鐨勫瓧鑺傛暟緇勶紝鎵撳嵃鍑虹殑榪欎釜瀛楄妭鏁扮粍鐨勯暱搴︿負(fù)聽1 銆備負(fù)浠涔堜袱涓瓧鑺傜殑鏁扮粍杞崲鎴愮殑瀛楃涓插弽杞洖鍘葷殑瀛楄妭鏁扮粍鐨勯暱搴﹀嵈涓轟竴鍛紵聽

絳旀錛?/font>
榪欎釜闂搴旇鏄敱UTF-8緙栫爜鐨勭壒鐐歸犳垚鐨勩?
UTF-8鏄竴縐嶅彉闀垮瓧鑺傜紪鐮佹柟寮忋傚浜庢煇涓涓瓧絎︾殑UTF-8緙栫爜錛屽鏋滃彧鏈変竴涓瓧鑺傚垯鍏舵渶楂樹簩榪涘埗浣嶄負(fù)0錛涘鏋滄槸澶氬瓧鑺傦紝鍏剁涓涓瓧鑺備粠鏈楂樹綅寮濮嬶紝榪炵畫鐨勪簩榪涘埗浣嶅間負(fù)1鐨勪釜鏁板喅瀹氫簡(jiǎn)鍏剁紪鐮佺殑浣嶆暟錛屽叾浣欏悇瀛楄妭鍧囦互10寮澶淬俇TF-8鏈澶氬彲鐢ㄥ埌6涓瓧鑺傘?
濡傝〃錛?
1瀛楄妭 0xxxxxxx
2瀛楄妭 110xxxxx 10xxxxxx
3瀛楄妭 1110xxxx 10xxxxxx 10xxxxxx
4瀛楄妭 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
5瀛楄妭 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
6瀛楄妭 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
鍥犳UTF-8涓彲浠ョ敤鏉ヨ〃紺哄瓧絎︾紪鐮佺殑瀹為檯浣嶆暟鏈澶氭湁31浣嶏紝鍗充笂琛ㄤ腑x鎵琛ㄧず鐨勪綅銆傞櫎鍘婚偅浜涙帶鍒朵綅錛堟瘡瀛楄妭寮澶寸殑10絳夛級(jí)錛岃繖浜泋琛ㄧず鐨勪綅涓嶶NICODE緙栫爜鏄竴涓瀵瑰簲鐨勶紝浣嶉珮浣庨『搴忎篃鐩稿悓銆?
瀹為檯灝哢NICODE杞崲涓篣TF-8緙栫爜鏃跺簲鍏堝幓闄ら珮浣?錛岀劧鍚庢牴鎹墍鍓╃紪鐮佺殑浣嶆暟鍐沖畾鎵闇鏈灝忕殑UTF-8緙栫爜浣嶆暟銆?
鍥犳閭d簺鍩烘湰ASCII瀛楃闆嗕腑鐨勫瓧絎︼紙UNICODE鍏煎ASCII錛夊彧闇瑕佷竴涓瓧鑺傜殑UTF-8緙栫爜錛?涓簩榪涘埗浣嶏級(jí)渚垮彲浠ヨ〃紺恒?

瀵逛簬涓婇潰鐨勯棶棰橈紝浠g爜涓粰鍑虹殑涓や釜瀛楄妭鏄?
鍗佸叚榪涘埗錛欳0 B1
浜岃繘鍒訛細(xì)11000000 10110001
瀵規(guī)瘮涓や釜瀛楄妭緙栫爜鐨勮〃紺烘柟寮忥細(xì)
110xxxxx 10xxxxxx
鎻愬彇鍑哄搴旂殑UNICODE緙栫爜錛?
00000 110001
鍙互鐪嬪嚭姝ょ紪鐮佸茍闈炩滄爣鍑嗏濈殑UTF-8緙栫爜錛屽洜涓哄叾絎竴涓瓧鑺傜殑鈥滄湁鏁堢紪鐮佲濆叏涓?錛屽幓闄ら珮浣?鍚庣殑緙栫爜浠呮湁6浣嶃傜敱鍓嶉潰鎵榪幫紝姝ゅ瓧絎︿粎鐢ㄤ竴涓瓧鑺傜殑UTF-8緙栫爜琛ㄧず灝卞浜?jiǎn)銆?
JAVA鍦ㄦ妸瀛楃榪樺師涓篣TF-8緙栫爜鏃訛紝鏄寜鐓р滄爣鍑嗏濈殑鏂瑰紡澶勭悊鐨勶紝鍥犳鎴戜滑寰楀埌鐨勬槸浠呮湁1涓瓧鑺傜殑緙栫爜銆?

澶у鍙互璇曡瘯榪愯榪欐浠g爜錛?
public class TestUTF8 {
public static void main(String[] args) throws Exception {
byte[][] bytes = {
// 00110001
{(byte)0x31},
// 11000000 10110001
{(byte)0xC0,(byte)0xB1},
// 11100000 10000000 10110001
{(byte)0xE0,(byte)0x80,(byte)0xB1},
// 11110000 10000000 10000000 10110001
{(byte)0xF0,(byte)0x80,(byte)0x80,(byte)0xB1},
// 11111000 10000000 10000000 10000000 10110001
{(byte)0xF8,(byte)0x80,(byte)0x80,(byte)0x80,(byte)0xB1},
// 11111100 10000000 10000000 10000000 10000000 10110001
{(byte)0xFC,(byte)0x80,(byte)0x80,(byte)0x80,(byte)0x80,(byte)0xB1},
};
for (int i = 0; i < 6; i++) {
String str = new String(bytes[i], "UTF-8");
System.out.println("鍘熸暟緇勯暱搴︼細(xì)" + bytes[i].length +
"\t杞崲涓哄瓧絎︿覆錛? + str +
"\t杞洖鍚庢暟緇勯暱搴︼細(xì)" + str.getBytes("UTF-8").length);
}
}
}
榪愯緇撴灉涓猴細(xì)
鍘熸暟緇勯暱搴︼細(xì)1 杞崲涓哄瓧絎︿覆錛? 杞洖鍚庢暟緇勯暱搴︼細(xì)1
鍘熸暟緇勯暱搴︼細(xì)2 杞崲涓哄瓧絎︿覆錛? 杞洖鍚庢暟緇勯暱搴︼細(xì)1
鍘熸暟緇勯暱搴︼細(xì)3 杞崲涓哄瓧絎︿覆錛? 杞洖鍚庢暟緇勯暱搴︼細(xì)1
鍘熸暟緇勯暱搴︼細(xì)4 杞崲涓哄瓧絎︿覆錛? 杞洖鍚庢暟緇勯暱搴︼細(xì)1
鍘熸暟緇勯暱搴︼細(xì)5 杞崲涓哄瓧絎︿覆錛? 杞洖鍚庢暟緇勯暱搴︼細(xì)1
鍘熸暟緇勯暱搴︼細(xì)6 杞崲涓哄瓧絎︿覆錛? 杞洖鍚庢暟緇勯暱搴︼細(xì)1


鍞墌~錛岀湅鏉ユ垜寰楀姞寮哄瓧絎︾紪鐮佹柟闈㈢殑鐭ヨ瘑浜?jiǎn)锛?/p>

榛戠伒 2006-08-23 14:09 鍙戣〃璇勮
]]>
[澶囦喚]璧峰姩SWT搴旂敤鐨勪竴孌電▼搴?/title><link>http://www.tkk7.com/mstar/archive/2006/06/03/50116.html</link><dc:creator>榛戠伒</dc:creator><author>榛戠伒</author><pubDate>Sat, 03 Jun 2006 04:54:00 GMT</pubDate><guid>http://www.tkk7.com/mstar/archive/2006/06/03/50116.html</guid><wfw:comment>http://www.tkk7.com/mstar/comments/50116.html</wfw:comment><comments>http://www.tkk7.com/mstar/archive/2006/06/03/50116.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/mstar/comments/commentRss/50116.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mstar/services/trackbacks/50116.html</trackback:ping><description><![CDATA[鍋氫竴涓兘鐭ラ亾浣犵殑SWT libraries鐨凜lassLoader<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">聽SWTClassLoader聽</span><span style="color: rgb(0, 0, 255);">extends</span><span style="color: rgb(0, 0, 0);">聽URLClassLoader聽{<br />聽<br />聽聽聽聽</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">final</span><span style="color: rgb(0, 0, 0);">聽File聽workDir;<br />聽聽聽聽</span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">final</span><span style="color: rgb(0, 0, 0);">聽Set聽loadedLibs聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">聽HashSet();<br />聽<br />聽聽聽聽</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">聽SWTClassLoader(URL[]聽urls,聽File聽workDir)聽{<br />聽聽聽聽聽聽聽聽</span><span style="color: rgb(0, 0, 255);">super</span><span style="color: rgb(0, 0, 0);">(urls);<br />聽聽聽聽聽聽聽聽</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.workDir聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽workDir;<br />聽聽聽聽}<br />聽<br />聽聽聽聽</span><span style="color: rgb(0, 0, 255);">protected</span><span style="color: rgb(0, 0, 0);">聽String聽findLibrary(String聽libname)聽{<br />聽聽聽聽聽聽聽聽String聽filename聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽System.mapLibraryName(libname);<br />聽聽聽聽聽聽聽聽URL聽url聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽getResource(filename);<br />聽聽聽聽聽聽聽聽</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">聽(url聽</span><span style="color: rgb(0, 0, 0);">==</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">)<br />聽聽聽聽聽聽聽聽聽聽聽聽</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">;<br />聽<br />聽聽聽聽聽聽聽聽File聽file聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">聽File(workDir,聽filename);<br />聽聽聽聽聽聽聽聽</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">聽(</span><span style="color: rgb(0, 0, 0);">!</span><span style="color: rgb(0, 0, 0);">loadedLibs.contains(file))<br />聽聽聽聽聽聽聽聽聽聽聽聽</span><span style="color: rgb(0, 0, 255);">try</span><span style="color: rgb(0, 0, 0);">聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽I(yíng)nputStream聽in聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽url.openStream();<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽FileOutputStream聽out聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">聽FileOutputStream(file);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</span><span style="color: rgb(0, 0, 255);">byte</span><span style="color: rgb(0, 0, 0);">[]聽buf聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">byte</span><span style="color: rgb(0, 0, 0);">[</span><span style="color: rgb(0, 0, 0);">4096</span><span style="color: rgb(0, 0, 0);">];<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">聽c;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</span><span style="color: rgb(0, 0, 255);">while</span><span style="color: rgb(0, 0, 0);">聽((c聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽in.read(buf))聽</span><span style="color: rgb(0, 0, 0);">!=</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽out.write(buf,聽</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">,聽c);<br />聽<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽out.close();<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽loadedLibs.add(file);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽in.close();<br />聽聽聽聽聽聽聽聽聽聽聽聽}聽</span><span style="color: rgb(0, 0, 255);">catch</span><span style="color: rgb(0, 0, 0);">聽(IOException聽e)聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">;<br />聽聽聽聽聽聽聽聽聽聽聽聽}聽</span><span style="color: rgb(0, 0, 255);">finally</span><span style="color: rgb(0, 0, 0);">聽{<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽file.deleteOnExit();<br />聽聽聽聽聽聽聽聽聽聽聽聽}<br />聽<br />聽聽聽聽聽聽聽聽</span><span style="color: rgb(0, 0, 255);">return</span><span style="color: rgb(0, 0, 0);">聽file.getAbsolutePath();<br />聽聽聽聽}<br />}<br /></span></div>鍐嶆潵涓搗鍔ㄧ▼搴忕殑main鏂規(guī)硶 <br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">聽main(String[]聽args)聽</span><span style="color: rgb(0, 0, 255);">throws</span><span style="color: rgb(0, 0, 0);">聽Exception聽{<br />聽聽聽聽URL[]聽urls聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 0);"><</span><span style="color: rgb(0, 0, 0);">URLs聽to聽your聽application聽and聽SWT聽JARs</span><span style="color: rgb(0, 0, 0);">></span><span style="color: rgb(0, 0, 0);">;<br />聽聽聽聽File聽workDir聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 0);"><</span><span style="color: rgb(0, 0, 0);">working聽directory聽of聽your聽choice</span><span style="color: rgb(0, 0, 0);">></span><span style="color: rgb(0, 0, 0);">;<br />聽聽聽聽ClassLoader聽cl聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">聽SWTClassLoader(urls,聽workDir);<br />聽聽聽聽Class聽mainClass聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽cl.loadClass(</span><span style="color: rgb(0, 0, 0);"><</span><span style="color: rgb(0, 0, 0);">name聽of聽your聽original聽main聽</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">></span><span style="color: rgb(0, 0, 0);">);<br />聽聽聽聽Method聽main聽</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">聽mainClass.getMethod(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">main</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,聽</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">聽Class[]聽{聽String[].</span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);">聽});<br />聽聽聽聽main.invoke(</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">,聽</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">聽Object[]聽{聽args聽});<br />}<br /></span></div><br /><img src ="http://www.tkk7.com/mstar/aggbug/50116.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mstar/" target="_blank">榛戠伒</a> 2006-06-03 12:54 <a href="http://www.tkk7.com/mstar/archive/2006/06/03/50116.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[ZY]LinkedList vs. ArrayListhttp://www.tkk7.com/mstar/archive/2006/01/26/29272.html榛戠伒榛戠伒Thu, 26 Jan 2006 12:25:00 GMThttp://www.tkk7.com/mstar/archive/2006/01/26/29272.htmlhttp://www.tkk7.com/mstar/comments/29272.htmlhttp://www.tkk7.com/mstar/archive/2006/01/26/29272.html#Feedback2http://www.tkk7.com/mstar/comments/commentRss/29272.htmlhttp://www.tkk7.com/mstar/services/trackbacks/29272.htmlLinkedList vs. ArrayList

浠婂ぉ鐪嬪埌鐨勪竴涓?/SPAN>Blog涓婄殑鍐呭錛屾垜鎶婂ぇ鑷村唴瀹規(guī)憳褰曚笅鏉ワ紝浣滀負(fù)澶囧繕銆?/SPAN>

http://javachaos.crazyredpanda.com/?p=99

 

棣栧厛鐪嬩竴涓?/SPAN>LinkedList鍜?/SPAN>ArrayList鐨勭戶鎵垮叧緋匯?/SPAN>

public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable

      

public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Queue<E>, Cloneable, Serializable

 

涓よ呴兘瀹炵幇List鎺ュ彛錛屽墠鑰呭疄鐜?/SPAN>RandomAccess鎺ュ彛錛屽悗鑰呭疄鐜?/SPAN>Queue鎺ュ彛銆?/SPAN>

 

ArrayList

ArrayList鍏跺疄鏄寘瑁呬簡(jiǎn)涓涓暟緇?/SPAN> Object[]錛屽綋瀹炰緥鍖栦竴涓?/SPAN>ArrayList鏃訛紝涓涓暟緇勪篃琚疄渚嬪寲錛屽綋鍚?/SPAN>ArrayList涓坊鍔犲璞℃槸錛屾暟緇勭殑澶у皬涔熺浉搴旂殑鏀瑰彉銆傝繖鏍峰氨甯︽潵浠ヤ笅鏈夌己鐐癸細(xì)

蹇熼殢鍗寵闂?/SPAN> 浣犲彲浠ラ殢鍗寵闂瘡涓厓绱犺屼笉鐢ㄨ冭檻鎬ц兘闂錛岄氳繃璋冪敤get(i)鏂規(guī)硶鏉ヨ闂笅鏍囦負(fù)i鐨勬暟緇勫厓绱犮?/SPAN>

鍚戝叾涓坊鍔犲璞¢熷害鎱?/SPAN> 褰撲綘鍒涘緩鏁扮粍鏄茍涓嶈兘紜畾鍏跺閲忥紝鎵浠ュ綋鏀瑰彉榪欎釜鏁扮粍鏃跺氨蹇呴』鍦ㄥ唴瀛樹腑鍋氬緢澶氫簨鎯呫?/SPAN>

鎿嶄綔鍏朵腑瀵硅薄鐨勯熷害鎱?/SPAN> 褰撲綘瑕佹兂鏁扮粍涓換鎰忎袱涓厓绱犱腑闂存坊鍔犲璞℃椂錛屾暟緇勯渶瑕佺Щ鍔ㄦ墍鏈夊悗闈㈢殑瀵硅薄銆?/SPAN>

 

LinkedList

LinkedList鏄氳繃鑺傜偣鐩存帴褰兼榪炴帴鏉ュ疄鐜扮殑銆傛瘡涓涓妭鐐歸兘鍖呭惈鍓嶄竴涓妭鐐圭殑寮曠敤錛屽悗涓涓妭鐐圭殑寮曠敤鍜岃妭鐐瑰瓨鍌ㄧ殑鍊箋傚綋涓涓柊鑺傜偣鎻掑叆鏃訛紝鍙渶瑕佷慨鏀瑰叾涓繚鎸佸厛鍚庡叧緋葷殑鑺傜偣鐨勫紩鐢ㄥ嵆鍙紝褰撳垹闄よ褰曟椂涔熶竴鏍楓傝繖鏍峰氨甯︽潵浠ヤ笅鏈夌己鐐癸細(xì)

鎿嶄綔鍏朵腑瀵硅薄鐨勯熷害蹇?/SPAN> 鍙渶瑕佹敼鍙樿繛鎺ワ紝鏂扮殑鑺傜偣鍙互鍦ㄥ唴瀛樹腑鐨勪換浣曞湴鏂?/SPAN>

涓嶈兘闅忓嵆璁塊棶 铏界劧瀛樺湪get()鏂規(guī)硶錛屼絾鏄繖涓柟娉曟槸閫氳繃閬嶅巻鎺ョ偣鏉ュ畾浣嶇殑鎵浠ラ熷害鎱€?/SPAN>

 

涓浜涚粨璁猴細(xì)

褰撲竴浜涜瀹氫箟濂界殑鏁版嵁闇瑕佹斁鍒頒笌鏁扮粍瀵瑰簲鐨?/SPAN>List涓紝ArrayList鏄緢濂界殑閫夋嫨錛屽洜涓哄畠鍙互鍔ㄦ佸彉鍖栵紝浣嗘槸涓嶈鍦ㄦ暣涓簲鐢ㄧ▼搴忕敤棰戠箒鐨勪嬌鐢ㄣ傚綋浣犺寰堟柟渚跨殑鎿嶄綔鍏朵腑鐨勬暟鎹屼笉鐢ㄩ殢鍗寵闂椂LinkList鏄緢濂界殑閫夋嫨銆傚鏋滀綘瑕侀綣侀殢鍗寵闂緩璁嬌鐢ㄦ暟緇勩?/SPAN>

鍙﹀涓涓垜娌℃湁鎻愬埌鐨勬槸鍏充簬Queue銆?/SPAN>LinkedList鐨勫疄鐜頒嬌鍏跺叿鏈夊緢濂界殑鍙墿灞曟э紝鍙互鏂逛究鐨勫湪寮濮嬪拰緇撳熬娣誨姞鍒犻櫎鑺傜偣銆傛墍浠?/SPAN>LinkedList寰堥傚悎鐢ㄦ潵瀹炵幇Queue鍜?/SPAN>Stack錛屽敖綆″湪Java5縐嶅凡緇忔湁浜?jiǎn)涓涓?/SPAN>Stack鐨勫疄鐜般?/SPAN>

 

 

浠ヤ笂鏄師鏂囦腑鐨勮鐐癸紝浣嗘槸鍦ㄥ洖澶嶄腑涔熸湁浜哄弽瀵癸細(xì)

LinkedList鏈変互涓嬬己闄鳳細(xì)

瀵硅薄鍒嗛厤-姣忔坊鍔犱竴欏瑰氨鍒嗛厤涓涓璞?/SPAN>

鍥炴敹鍨冨溇-瀵硅薄鍒嗛厤鐨勭粨鏋?/SPAN>

闅忓嵆璁塊棶鎱?/SPAN>-璁捐涓婄殑鍘熷洜

娣誨姞鍒犻櫎鎱?/SPAN>-鍥犱負(fù)棣栧厛瑕佹壘鍒頒綅緗?/SPAN>

搴旇浣跨敤LinkedList鐨勬儏鍐甸潪甯稿皯銆傚ぇ澶氭暟鐨勫緩璁嬌浣跨敤LinkedList鏄敊璇殑銆?/SPAN>

JDK鐨?/SPAN>Stack灝辨槸鐢ㄦ暟緇勬潵瀹炵幇鐨勩?/SPAN>

鍦ㄥ鏁版椂闂撮噷浣犲茍涓嶆槸鍚?/SPAN>List涓棿娣誨姞鏁版嵁錛岃屾槸鍚戝湪緇撳熬娣誨姞錛岃繖鏍風(fēng)殑鎿嶄綔ArrayList琛ㄧ幇鐨勫緢濂姐?/SPAN>

LinkedList鍦ㄥ疄鐜?/SPAN>Queue鏃跺緢鏈夌敤銆?/SPAN>

 

鐒跺悗鏄師鏂囦綔鑰呮彁渚涚殑涓浜涙暟鎹細(xì)

addFirst() to array list took 1422

addFirst() to linked list using general methods took 16

addFirst() to linked list using linked list methods took 16

addLast() to array list took 16

addLast() to linked list using general methods took 15

addLast() to linked list using linked list methods took 0

addMiddleTest() to array list took 735

addMiddleTest() to linked list using general methods took 11688

addMiddleTest() to linked list using linked list methods took 8406

removeFirst() to array list took 1422

removeFirst() to linked list using general methods took 0

removeFirst() to linked list using linked list methods took 0

removeLast() to array list took 0

removeLast() to linked list using general methods took 0

removeLast() to linked list using linked list methods took 0

removeMiddle() to array list took 734

removeMiddle() to linked list using general methods took 7594

removeMiddle() to linked list using linked list methods took 7719

fetchFirst() to array list took 0

fetchFirst() to linked list using general methods took 0

fetchFirst() to linked list using linked list methods took 0

fetchLast() to array list took 16

fetchLast() to linked list using general methods took 0

fetchLast() to linked list using linked list methods took 0

fetchMiddle() to array list took 15

fetchMiddle() to linked list using general methods took 9156

fetchMiddle() to linked list using linked list methods took 9234



榛戠伒 2006-01-26 20:25 鍙戣〃璇勮
]]>
鍔犺澆classpath涓殑鏂囦歡http://www.tkk7.com/mstar/archive/2005/07/20/8043.html榛戠伒榛戠伒Wed, 20 Jul 2005 06:46:00 GMThttp://www.tkk7.com/mstar/archive/2005/07/20/8043.htmlhttp://www.tkk7.com/mstar/comments/8043.htmlhttp://www.tkk7.com/mstar/archive/2005/07/20/8043.html#Feedback0http://www.tkk7.com/mstar/comments/commentRss/8043.htmlhttp://www.tkk7.com/mstar/services/trackbacks/8043.html
       URL url = this.getClass().getResource("EJBConfig.xml");
        
try {
            File xmlFile 
= new File(URLDecoder.decode(url.getFile(),"UTF-8"));
            
if(xmlFile.exists())
                System.
out.println("OK");
        } 
catch (UnsupportedEncodingException e) {
            e.printStackTrace();  
//To change body of catch statement use File | Settings | File Templates.
        }


榛戠伒 2005-07-20 14:46 鍙戣〃璇勮
]]>
Random鐨刵extInt(int i)鏂規(guī)硶鐨勮繑鍥炲?/title><link>http://www.tkk7.com/mstar/archive/2005/05/21/5026.html</link><dc:creator>榛戠伒</dc:creator><author>榛戠伒</author><pubDate>Sat, 21 May 2005 03:04:00 GMT</pubDate><guid>http://www.tkk7.com/mstar/archive/2005/05/21/5026.html</guid><wfw:comment>http://www.tkk7.com/mstar/comments/5026.html</wfw:comment><comments>http://www.tkk7.com/mstar/archive/2005/05/21/5026.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.tkk7.com/mstar/comments/commentRss/5026.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/mstar/services/trackbacks/5026.html</trackback:ping><description><![CDATA[docs涓榪斿洖鍊兼槸浠?鍒癷錛屼笉澶熷噯紜?br> 榪斿洖鍊煎簲璇ユ槸 >=0 , <i,灝辨槸璇存案榪滀篃涓嶄細(xì)榪斿洖i銆?br> <img src ="http://www.tkk7.com/mstar/aggbug/5026.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/mstar/" target="_blank">榛戠伒</a> 2005-05-21 11:04 <a href="http://www.tkk7.com/mstar/archive/2005/05/21/5026.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://bixnu.com" target="_blank">国内自产拍自a免费毛片</a>| <a href="http://taobaohuopin.com" target="_blank">一二三四影视在线看片免费</a>| <a href="http://zzxngk.com" target="_blank">四虎影视永久免费观看网址</a>| <a href="http://www-01313.com" target="_blank">亚洲国产中文在线视频</a>| <a href="http://nblfkj.com" target="_blank">国产一级淫片免费播放</a>| <a href="http://kph37.com" target="_blank">亚洲国产AV一区二区三区四区</a>| <a href="http://lzlcp.com" target="_blank">日韩av无码成人无码免费</a>| <a href="http://shbailongma.com" target="_blank">亚洲AV综合色区无码二区偷拍</a>| <a href="http://chibifilm.com" target="_blank">国产啪精品视频网免费</a>| <a href="http://senimei9.com" target="_blank">亚洲AV色吊丝无码</a>| <a href="http://siminglighting.com" target="_blank">成年女人免费视频播放77777</a>| <a href="http://yiren2233.com" target="_blank">97se亚洲国产综合自在线</a>| <a href="http://szjmlr.com" target="_blank">成人无遮挡裸免费视频在线观看 </a>| <a href="http://yiren2233.com" target="_blank">在线看无码的免费网站</a>| <a href="http://pufenghotel.com" target="_blank">成人免费视频国产</a>| <a href="http://ruidamo.com" target="_blank">国产99久久亚洲综合精品</a>| <a href="http://chaikexin.com" target="_blank">亚洲精品乱码久久久久久蜜桃</a>| <a href="http://zp0533.com" target="_blank">一级**爱片免费视频</a>| <a href="http://jte-sh.com" target="_blank">四虎永久在线精品免费观看视频</a>| <a href="http://449892.com" target="_blank">亚洲成年人电影在线观看</a>| <a href="http://51ruilon.com" target="_blank">免费无码AV电影在线观看</a>| <a href="http://jj5c.com" target="_blank">立即播放免费毛片一级</a>| <a href="http://wwwby1385.com" target="_blank">久久亚洲精品无码观看不卡</a>| <a href="http://wxbhnkyy39.com" target="_blank">在线毛片片免费观看</a>| <a href="http://323799.com" target="_blank">亚洲专区先锋影音</a>| <a href="http://www676617.com" target="_blank">毛片A级毛片免费播放</a>| <a href="http://ttays.com" target="_blank">男女污污污超污视频免费在线看</a>| <a href="http://yy12345.com" target="_blank">国产亚洲自拍一区</a>| <a href="http://dfcnpc.com" target="_blank">亚洲精品免费在线</a>| <a href="http://znboxcdn107.com" target="_blank">亚洲熟女乱色一区二区三区 </a>| <a href="http://vip98888.com" target="_blank">国产色爽免费视频</a>| <a href="http://jiuse54.com" target="_blank">亚洲毛片免费观看</a>| <a href="http://xyyfamily.com" target="_blank">香蕉高清免费永久在线视频</a>| <a href="http://xyyfamily.com" target="_blank">av成人免费电影</a>| <a href="http://meiluniao.com" target="_blank">国产嫩草影院精品免费网址</a>| <a href="http://xian66.com" target="_blank">ww在线观视频免费观看w</a>| <a href="http://26672814.com" target="_blank">亚洲色图国产精品</a>| <a href="http://mllm999.com" target="_blank">日本特黄特色aa大片免费</a>| <a href="http://socgl.com" target="_blank">黄网站免费在线观看</a>| <a href="http://kk600700.com" target="_blank">亚洲日韩一区二区三区</a>| <a href="http://www-774220.com" target="_blank">亚洲午夜久久久久久噜噜噜</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>