You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Loader.html 26KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <!-- NewPage -->
  3. <html lang="en">
  4. <head>
  5. <!-- Generated by javadoc (10.0.1) on Thu Jun 21 01:52:55 JST 2018 -->
  6. <title>Loader (Javassist API)</title>
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  8. <meta name="date" content="2018-06-21">
  9. <link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
  10. <link rel="stylesheet" type="text/css" href="../jquery/jquery-ui.css" title="Style">
  11. <script type="text/javascript" src="../script.js"></script>
  12. <script type="text/javascript" src="../jquery/jszip/dist/jszip.min.js"></script>
  13. <script type="text/javascript" src="../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
  14. <!--[if IE]>
  15. <script type="text/javascript" src="../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
  16. <![endif]-->
  17. <script type="text/javascript" src="../jquery/jquery-1.10.2.js"></script>
  18. <script type="text/javascript" src="../jquery/jquery-ui.js"></script>
  19. </head>
  20. <body>
  21. <script type="text/javascript"><!--
  22. try {
  23. if (location.href.indexOf('is-external=true') == -1) {
  24. parent.document.title="Loader (Javassist API)";
  25. }
  26. }
  27. catch(err) {
  28. }
  29. //-->
  30. var methods = {"i0":10,"i1":10,"i2":9,"i3":10,"i4":10,"i5":10,"i6":10};
  31. var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
  32. var altColor = "altColor";
  33. var rowColor = "rowColor";
  34. var tableTab = "tableTab";
  35. var activeTableTab = "activeTableTab";
  36. var pathtoroot = "../";loadScripts(document, 'script');</script>
  37. <noscript>
  38. <div>JavaScript is disabled on your browser.</div>
  39. </noscript>
  40. <div class="fixedNav">
  41. <!-- ========= START OF TOP NAVBAR ======= -->
  42. <div class="topNav"><a name="navbar.top">
  43. <!-- -->
  44. </a>
  45. <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
  46. <a name="navbar.top.firstrow">
  47. <!-- -->
  48. </a>
  49. <ul class="navList" title="Navigation">
  50. <li><a href="../overview-summary.html">Overview</a></li>
  51. <li><a href="package-summary.html">Package</a></li>
  52. <li class="navBarCell1Rev">Class</li>
  53. <li><a href="class-use/Loader.html">Use</a></li>
  54. <li><a href="package-tree.html">Tree</a></li>
  55. <li><a href="../deprecated-list.html">Deprecated</a></li>
  56. <li><a href="../index-all.html">Index</a></li>
  57. </ul>
  58. </div>
  59. <div class="subNav">
  60. <ul class="navList">
  61. <li><a href="../javassist/CtPrimitiveType.html" title="class in javassist"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
  62. <li><a href="../javassist/LoaderClassPath.html" title="class in javassist"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
  63. </ul>
  64. <ul class="navList">
  65. <li><a href="../index.html?javassist/Loader.html" target="_top">Frames</a></li>
  66. <li><a href="Loader.html" target="_top">No&nbsp;Frames</a></li>
  67. </ul>
  68. <ul class="navList" id="allclasses_navbar_top">
  69. <li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
  70. </ul>
  71. <ul class="navListSearch">
  72. <li><label for="search">SEARCH:</label>
  73. <input type="text" id="search" value="search" disabled="disabled">
  74. <input type="reset" id="reset" value="reset" disabled="disabled">
  75. </li>
  76. </ul>
  77. <div>
  78. <script type="text/javascript"><!--
  79. allClassesLink = document.getElementById("allclasses_navbar_top");
  80. if(window==top) {
  81. allClassesLink.style.display = "block";
  82. }
  83. else {
  84. allClassesLink.style.display = "none";
  85. }
  86. //-->
  87. </script>
  88. <noscript>
  89. <div>JavaScript is disabled on your browser.</div>
  90. </noscript>
  91. </div>
  92. <div>
  93. <ul class="subNavList">
  94. <li>Summary:&nbsp;</li>
  95. <li>Nested&nbsp;|&nbsp;</li>
  96. <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
  97. <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
  98. <li><a href="#method.summary">Method</a></li>
  99. </ul>
  100. <ul class="subNavList">
  101. <li>Detail:&nbsp;</li>
  102. <li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
  103. <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
  104. <li><a href="#method.detail">Method</a></li>
  105. </ul>
  106. </div>
  107. <a name="skip.navbar.top">
  108. <!-- -->
  109. </a></div>
  110. <!-- ========= END OF TOP NAVBAR ========= -->
  111. </div>
  112. <div class="navPadding">&nbsp;</div>
  113. <script type="text/javascript"><!--
  114. $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
  115. //-->
  116. </script>
  117. <!-- ======== START OF CLASS DATA ======== -->
  118. <div class="header">
  119. <div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="../javassist/package-summary.html">javassist</a></div>
  120. <h2 title="Class Loader" class="title">Class Loader</h2>
  121. </div>
  122. <div class="contentContainer">
  123. <ul class="inheritance">
  124. <li>java.lang.Object</li>
  125. <li>
  126. <ul class="inheritance">
  127. <li>java.lang.ClassLoader</li>
  128. <li>
  129. <ul class="inheritance">
  130. <li>javassist.Loader</li>
  131. </ul>
  132. </li>
  133. </ul>
  134. </li>
  135. </ul>
  136. <div class="description">
  137. <ul class="blockList">
  138. <li class="blockList">
  139. <dl>
  140. <dt>Direct Known Subclasses:</dt>
  141. <dd><code><a href="../javassist/tools/reflect/Loader.html" title="class in javassist.tools.reflect">Loader</a></code></dd>
  142. </dl>
  143. <hr>
  144. <pre>public class <span class="typeNameLabel">Loader</span>
  145. extends java.lang.ClassLoader</pre>
  146. <div class="block">The class loader for Javassist.
  147. <p>This is a sample class loader using <code>ClassPool</code>.
  148. Unlike a regular class loader, this class loader obtains bytecode
  149. from a <code>ClassPool</code>.
  150. <p>Note that Javassist can be used without this class loader; programmers
  151. can define their own versions of class loader. They can run
  152. a program even without any user-defined class loader if that program
  153. is statically translated with Javassist.
  154. This class loader is just provided as a utility class.
  155. <p>Suppose that an instance of <code>MyTranslator</code> implementing
  156. the interface <code>Translator</code> is responsible for modifying
  157. class files.
  158. The startup program of an application using <code>MyTranslator</code>
  159. should be something like this:
  160. <pre>
  161. import javassist.*;
  162. public class Main {
  163. public static void main(String[] args) throws Throwable {
  164. MyTranslator myTrans = new MyTranslator();
  165. ClassPool cp = ClassPool.getDefault();
  166. Loader cl = new Loader(cp);
  167. cl.addTranslator(cp, myTrans);
  168. cl.run("MyApp", args);
  169. }
  170. }
  171. </pre>
  172. <p>Class <code>MyApp</code> is the main program of the application.
  173. <p>This program should be executed as follows:
  174. <pre>
  175. % java Main <i>arg1</i> <i>arg2</i>...
  176. </pre>
  177. <p>It modifies the class <code>MyApp</code> with a <code>MyTranslator</code>
  178. object before the JVM loads it.
  179. Then it calls <code>main()</code> in <code>MyApp</code> with arguments
  180. <i>arg1</i>, <i>arg2</i>, ...
  181. <p>This program execution is equivalent to:
  182. <pre>
  183. % java MyApp <i>arg1</i> <i>arg2</i>...
  184. </pre>
  185. <p>except that classes are translated by <code>MyTranslator</code>
  186. at load time.
  187. <p>If only a particular class must be modified when it is loaded,
  188. the startup program can be simpler; <code>MyTranslator</code> is
  189. unnecessary. For example, if only a class <code>test.Rectangle</code>
  190. is modified, the <code>main()</code> method above will be the following:
  191. <pre>
  192. ClassPool cp = ClassPool.getDefault();
  193. Loader cl = new Loader(cp);
  194. CtClass ct = cp.get("test.Rectangle");
  195. ct.setSuperclass(cp.get("test.Point"));
  196. cl.run("MyApp", args);</pre>
  197. <p>This program changes the super class of the <code>test.Rectangle</code>
  198. class.
  199. <p><b>Note 1:</b>
  200. <p>This class loader does not allow the users to intercept the loading
  201. of <code>java.*</code> and <code>javax.*</code> classes (and
  202. <code>sun.*</code>, <code>org.xml.*</code>, ...) unless
  203. <code>Loader.doDelegation</code> is <code>false</code>. This is because
  204. the JVM prohibits a user class loader from loading a system class.
  205. Also see Note 2.
  206. If this behavior is not appropriate, a subclass of <code>Loader</code>
  207. must be defined and <code>loadClassByDelegation()</code> must be overridden.
  208. <p><b>Note 2:</b>
  209. <p>If classes are loaded with different class loaders, they belong to
  210. separate name spaces. If class <code>C</code> is loaded by a class
  211. loader <code>CL</code>, all classes that the class <code>C</code>
  212. refers to are also loaded by <code>CL</code>. However, if <code>CL</code>
  213. delegates the loading of the class <code>C</code> to <code>CL'</code>,
  214. then those classes that the class <code>C</code> refers to
  215. are loaded by a parent class loader <code>CL'</code>
  216. instead of <code>CL</code>.
  217. <p>If an object of class <code>C</code> is assigned
  218. to a variable of class <code>C</code> belonging to a different name
  219. space, then a <code>ClassCastException</code> is thrown.
  220. <p>Because of the fact above, this loader delegates only the loading of
  221. <code>javassist.Loader</code>
  222. and classes included in package <code>java.*</code> and
  223. <code>javax.*</code> to the parent class
  224. loader. Other classes are directly loaded by this loader.
  225. <p>For example, suppose that <code>java.lang.String</code> would be loaded
  226. by this loader while <code>java.io.File</code> is loaded by the parent
  227. class loader. If the constructor of <code>java.io.File</code> is called
  228. with an instance of <code>java.lang.String</code>, then it may throw
  229. an exception since it accepts an instance of only the
  230. <code>java.lang.String</code> loaded by the parent class loader.</div>
  231. <dl>
  232. <dt><span class="seeLabel">See Also:</span></dt>
  233. <dd><a href="../javassist/ClassPool.html" title="class in javassist"><code>ClassPool</code></a>,
  234. <a href="../javassist/Translator.html" title="interface in javassist"><code>Translator</code></a></dd>
  235. </dl>
  236. </li>
  237. </ul>
  238. </div>
  239. <div class="summary">
  240. <ul class="blockList">
  241. <li class="blockList">
  242. <!-- =========== FIELD SUMMARY =========== -->
  243. <ul class="blockList">
  244. <li class="blockList"><a name="field.summary">
  245. <!-- -->
  246. </a>
  247. <h3>Field Summary</h3>
  248. <table class="memberSummary" summary="Field Summary table, listing fields, and an explanation">
  249. <caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
  250. <tr>
  251. <th class="colFirst" scope="col">Modifier and Type</th>
  252. <th class="colSecond" scope="col">Field</th>
  253. <th class="colLast" scope="col">Description</th>
  254. </tr>
  255. <tr class="altColor">
  256. <td class="colFirst"><code>boolean</code></td>
  257. <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../javassist/Loader.html#doDelegation">doDelegation</a></span></code></th>
  258. <td class="colLast">
  259. <div class="block">Specifies the algorithm of class loading.</div>
  260. </td>
  261. </tr>
  262. </table>
  263. </li>
  264. </ul>
  265. <!-- ======== CONSTRUCTOR SUMMARY ======== -->
  266. <ul class="blockList">
  267. <li class="blockList"><a name="constructor.summary">
  268. <!-- -->
  269. </a>
  270. <h3>Constructor Summary</h3>
  271. <table class="memberSummary" summary="Constructor Summary table, listing constructors, and an explanation">
  272. <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
  273. <tr>
  274. <th class="colFirst" scope="col">Constructor</th>
  275. <th class="colLast" scope="col">Description</th>
  276. </tr>
  277. <tr class="altColor">
  278. <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="../javassist/Loader.html#Loader--">Loader</a></span>()</code></th>
  279. <td class="colLast">
  280. <div class="block">Creates a new class loader.</div>
  281. </td>
  282. </tr>
  283. <tr class="rowColor">
  284. <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="../javassist/Loader.html#Loader-java.lang.ClassLoader-javassist.ClassPool-">Loader</a></span>&#8203;(java.lang.ClassLoader&nbsp;parent,
  285. <a href="../javassist/ClassPool.html" title="class in javassist">ClassPool</a>&nbsp;cp)</code></th>
  286. <td class="colLast">
  287. <div class="block">Creates a new class loader
  288. using the specified parent class loader for delegation.</div>
  289. </td>
  290. </tr>
  291. <tr class="altColor">
  292. <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="../javassist/Loader.html#Loader-javassist.ClassPool-">Loader</a></span>&#8203;(<a href="../javassist/ClassPool.html" title="class in javassist">ClassPool</a>&nbsp;cp)</code></th>
  293. <td class="colLast">
  294. <div class="block">Creates a new class loader.</div>
  295. </td>
  296. </tr>
  297. </table>
  298. </li>
  299. </ul>
  300. <!-- ========== METHOD SUMMARY =========== -->
  301. <ul class="blockList">
  302. <li class="blockList"><a name="method.summary">
  303. <!-- -->
  304. </a>
  305. <h3>Method Summary</h3>
  306. <table class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
  307. <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
  308. <tr>
  309. <th class="colFirst" scope="col">Modifier and Type</th>
  310. <th class="colSecond" scope="col">Method</th>
  311. <th class="colLast" scope="col">Description</th>
  312. </tr>
  313. <tr id="i0" class="altColor">
  314. <td class="colFirst"><code>void</code></td>
  315. <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../javassist/Loader.html#addTranslator-javassist.ClassPool-javassist.Translator-">addTranslator</a></span>&#8203;(<a href="../javassist/ClassPool.html" title="class in javassist">ClassPool</a>&nbsp;cp,
  316. <a href="../javassist/Translator.html" title="interface in javassist">Translator</a>&nbsp;t)</code></th>
  317. <td class="colLast">
  318. <div class="block">Adds a translator, which is called whenever a class is loaded.</div>
  319. </td>
  320. </tr>
  321. <tr id="i1" class="rowColor">
  322. <td class="colFirst"><code>void</code></td>
  323. <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../javassist/Loader.html#delegateLoadingOf-java.lang.String-">delegateLoadingOf</a></span>&#8203;(java.lang.String&nbsp;classname)</code></th>
  324. <td class="colLast">
  325. <div class="block">Records a class so that the loading of that class is delegated
  326. to the parent class loader.</div>
  327. </td>
  328. </tr>
  329. <tr id="i2" class="altColor">
  330. <td class="colFirst"><code>static void</code></td>
  331. <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../javassist/Loader.html#main-java.lang.String:A-">main</a></span>&#8203;(java.lang.String[]&nbsp;args)</code></th>
  332. <td class="colLast">
  333. <div class="block">Loads a class with an instance of <code>Loader</code>
  334. and calls <code>main()</code> of that class.</div>
  335. </td>
  336. </tr>
  337. <tr id="i3" class="rowColor">
  338. <td class="colFirst"><code>void</code></td>
  339. <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../javassist/Loader.html#run-java.lang.String:A-">run</a></span>&#8203;(java.lang.String[]&nbsp;args)</code></th>
  340. <td class="colLast">
  341. <div class="block">Loads a class and calls <code>main()</code> in that class.</div>
  342. </td>
  343. </tr>
  344. <tr id="i4" class="altColor">
  345. <td class="colFirst"><code>void</code></td>
  346. <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../javassist/Loader.html#run-java.lang.String-java.lang.String:A-">run</a></span>&#8203;(java.lang.String&nbsp;classname,
  347. java.lang.String[]&nbsp;args)</code></th>
  348. <td class="colLast">
  349. <div class="block">Loads a class and calls <code>main()</code> in that class.</div>
  350. </td>
  351. </tr>
  352. <tr id="i5" class="rowColor">
  353. <td class="colFirst"><code>void</code></td>
  354. <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../javassist/Loader.html#setClassPool-javassist.ClassPool-">setClassPool</a></span>&#8203;(<a href="../javassist/ClassPool.html" title="class in javassist">ClassPool</a>&nbsp;cp)</code></th>
  355. <td class="colLast">
  356. <div class="block">Sets the soruce <code>ClassPool</code>.</div>
  357. </td>
  358. </tr>
  359. <tr id="i6" class="altColor">
  360. <td class="colFirst"><code>void</code></td>
  361. <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="../javassist/Loader.html#setDomain-java.security.ProtectionDomain-">setDomain</a></span>&#8203;(java.security.ProtectionDomain&nbsp;d)</code></th>
  362. <td class="colLast">
  363. <div class="block">Sets the protection domain for the classes handled by this class
  364. loader.</div>
  365. </td>
  366. </tr>
  367. </table>
  368. <ul class="blockList">
  369. <li class="blockList"><a name="methods.inherited.from.class.java.lang.ClassLoader">
  370. <!-- -->
  371. </a>
  372. <h3>Methods inherited from class&nbsp;java.lang.ClassLoader</h3>
  373. <code>clearAssertionStatus, getDefinedPackage, getDefinedPackages, getName, getParent, getPlatformClassLoader, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus</code></li>
  374. </ul>
  375. <ul class="blockList">
  376. <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
  377. <!-- -->
  378. </a>
  379. <h3>Methods inherited from class&nbsp;java.lang.Object</h3>
  380. <code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
  381. </ul>
  382. </li>
  383. </ul>
  384. </li>
  385. </ul>
  386. </div>
  387. <div class="details">
  388. <ul class="blockList">
  389. <li class="blockList">
  390. <!-- ============ FIELD DETAIL =========== -->
  391. <ul class="blockList">
  392. <li class="blockList"><a name="field.detail">
  393. <!-- -->
  394. </a>
  395. <h3>Field Detail</h3>
  396. <a name="doDelegation">
  397. <!-- -->
  398. </a>
  399. <ul class="blockListLast">
  400. <li class="blockList">
  401. <h4>doDelegation</h4>
  402. <pre>public&nbsp;boolean doDelegation</pre>
  403. <div class="block">Specifies the algorithm of class loading.
  404. <p>This class loader uses the parent class loader for
  405. <code>java.*</code> and <code>javax.*</code> classes.
  406. If this variable <code>doDelegation</code>
  407. is <code>false</code>, this class loader does not delegate those
  408. classes to the parent class loader.
  409. <p>The default value is <code>true</code>.</div>
  410. </li>
  411. </ul>
  412. </li>
  413. </ul>
  414. <!-- ========= CONSTRUCTOR DETAIL ======== -->
  415. <ul class="blockList">
  416. <li class="blockList"><a name="constructor.detail">
  417. <!-- -->
  418. </a>
  419. <h3>Constructor Detail</h3>
  420. <a name="Loader--">
  421. <!-- -->
  422. </a>
  423. <ul class="blockList">
  424. <li class="blockList">
  425. <h4>Loader</h4>
  426. <pre>public&nbsp;Loader()</pre>
  427. <div class="block">Creates a new class loader.</div>
  428. </li>
  429. </ul>
  430. <a name="Loader-javassist.ClassPool-">
  431. <!-- -->
  432. </a>
  433. <ul class="blockList">
  434. <li class="blockList">
  435. <h4>Loader</h4>
  436. <pre>public&nbsp;Loader&#8203;(<a href="../javassist/ClassPool.html" title="class in javassist">ClassPool</a>&nbsp;cp)</pre>
  437. <div class="block">Creates a new class loader.</div>
  438. <dl>
  439. <dt><span class="paramLabel">Parameters:</span></dt>
  440. <dd><code>cp</code> - the source of class files.</dd>
  441. </dl>
  442. </li>
  443. </ul>
  444. <a name="Loader-java.lang.ClassLoader-javassist.ClassPool-">
  445. <!-- -->
  446. </a>
  447. <ul class="blockListLast">
  448. <li class="blockList">
  449. <h4>Loader</h4>
  450. <pre>public&nbsp;Loader&#8203;(java.lang.ClassLoader&nbsp;parent,
  451. <a href="../javassist/ClassPool.html" title="class in javassist">ClassPool</a>&nbsp;cp)</pre>
  452. <div class="block">Creates a new class loader
  453. using the specified parent class loader for delegation.</div>
  454. <dl>
  455. <dt><span class="paramLabel">Parameters:</span></dt>
  456. <dd><code>parent</code> - the parent class loader.</dd>
  457. <dd><code>cp</code> - the source of class files.</dd>
  458. </dl>
  459. </li>
  460. </ul>
  461. </li>
  462. </ul>
  463. <!-- ============ METHOD DETAIL ========== -->
  464. <ul class="blockList">
  465. <li class="blockList"><a name="method.detail">
  466. <!-- -->
  467. </a>
  468. <h3>Method Detail</h3>
  469. <a name="delegateLoadingOf-java.lang.String-">
  470. <!-- -->
  471. </a>
  472. <ul class="blockList">
  473. <li class="blockList">
  474. <h4>delegateLoadingOf</h4>
  475. <pre>public&nbsp;void&nbsp;delegateLoadingOf&#8203;(java.lang.String&nbsp;classname)</pre>
  476. <div class="block">Records a class so that the loading of that class is delegated
  477. to the parent class loader.
  478. <p>If the given class name ends with <code>.</code> (dot), then
  479. that name is interpreted as a package name. All the classes
  480. in that package and the sub packages are delegated.</div>
  481. </li>
  482. </ul>
  483. <a name="setDomain-java.security.ProtectionDomain-">
  484. <!-- -->
  485. </a>
  486. <ul class="blockList">
  487. <li class="blockList">
  488. <h4>setDomain</h4>
  489. <pre>public&nbsp;void&nbsp;setDomain&#8203;(java.security.ProtectionDomain&nbsp;d)</pre>
  490. <div class="block">Sets the protection domain for the classes handled by this class
  491. loader. Without registering an appropriate protection domain,
  492. the program loaded by this loader will not work with a security
  493. manager or a signed jar file.</div>
  494. </li>
  495. </ul>
  496. <a name="setClassPool-javassist.ClassPool-">
  497. <!-- -->
  498. </a>
  499. <ul class="blockList">
  500. <li class="blockList">
  501. <h4>setClassPool</h4>
  502. <pre>public&nbsp;void&nbsp;setClassPool&#8203;(<a href="../javassist/ClassPool.html" title="class in javassist">ClassPool</a>&nbsp;cp)</pre>
  503. <div class="block">Sets the soruce <code>ClassPool</code>.</div>
  504. </li>
  505. </ul>
  506. <a name="addTranslator-javassist.ClassPool-javassist.Translator-">
  507. <!-- -->
  508. </a>
  509. <ul class="blockList">
  510. <li class="blockList">
  511. <h4>addTranslator</h4>
  512. <pre>public&nbsp;void&nbsp;addTranslator&#8203;(<a href="../javassist/ClassPool.html" title="class in javassist">ClassPool</a>&nbsp;cp,
  513. <a href="../javassist/Translator.html" title="interface in javassist">Translator</a>&nbsp;t)
  514. throws <a href="../javassist/NotFoundException.html" title="class in javassist">NotFoundException</a>,
  515. <a href="../javassist/CannotCompileException.html" title="class in javassist">CannotCompileException</a></pre>
  516. <div class="block">Adds a translator, which is called whenever a class is loaded.</div>
  517. <dl>
  518. <dt><span class="paramLabel">Parameters:</span></dt>
  519. <dd><code>cp</code> - the <code>ClassPool</code> object for obtaining
  520. a class file.</dd>
  521. <dd><code>t</code> - a translator.</dd>
  522. <dt><span class="throwsLabel">Throws:</span></dt>
  523. <dd><code><a href="../javassist/NotFoundException.html" title="class in javassist">NotFoundException</a></code> - if <code>t.start()</code> throws an exception.</dd>
  524. <dd><code><a href="../javassist/CannotCompileException.html" title="class in javassist">CannotCompileException</a></code> - if <code>t.start()</code> throws an exception.</dd>
  525. </dl>
  526. </li>
  527. </ul>
  528. <a name="main-java.lang.String:A-">
  529. <!-- -->
  530. </a>
  531. <ul class="blockList">
  532. <li class="blockList">
  533. <h4>main</h4>
  534. <pre>public static&nbsp;void&nbsp;main&#8203;(java.lang.String[]&nbsp;args)
  535. throws java.lang.Throwable</pre>
  536. <div class="block">Loads a class with an instance of <code>Loader</code>
  537. and calls <code>main()</code> of that class.
  538. <p>This method calls <code>run()</code>.</div>
  539. <dl>
  540. <dt><span class="paramLabel">Parameters:</span></dt>
  541. <dd><code>args</code> - command line parameters.
  542. <br>&nbsp;&nbsp;<code>args[0]</code> is the class name to be loaded.
  543. <br>&nbsp;&nbsp;<code>args[1..n]</code> are parameters passed
  544. to the target <code>main()</code>.</dd>
  545. <dt><span class="throwsLabel">Throws:</span></dt>
  546. <dd><code>java.lang.Throwable</code></dd>
  547. <dt><span class="seeLabel">See Also:</span></dt>
  548. <dd><a href="../javassist/Loader.html#run-java.lang.String:A-"><code>run(String[])</code></a></dd>
  549. </dl>
  550. </li>
  551. </ul>
  552. <a name="run-java.lang.String:A-">
  553. <!-- -->
  554. </a>
  555. <ul class="blockList">
  556. <li class="blockList">
  557. <h4>run</h4>
  558. <pre>public&nbsp;void&nbsp;run&#8203;(java.lang.String[]&nbsp;args)
  559. throws java.lang.Throwable</pre>
  560. <div class="block">Loads a class and calls <code>main()</code> in that class.</div>
  561. <dl>
  562. <dt><span class="paramLabel">Parameters:</span></dt>
  563. <dd><code>args</code> - command line parameters.
  564. <br>&nbsp;&nbsp;<code>args[0]</code> is the class name to be loaded.
  565. <br>&nbsp;&nbsp;<code>args[1..n]</code> are parameters passed
  566. to the target <code>main()</code>.</dd>
  567. <dt><span class="throwsLabel">Throws:</span></dt>
  568. <dd><code>java.lang.Throwable</code></dd>
  569. </dl>
  570. </li>
  571. </ul>
  572. <a name="run-java.lang.String-java.lang.String:A-">
  573. <!-- -->
  574. </a>
  575. <ul class="blockListLast">
  576. <li class="blockList">
  577. <h4>run</h4>
  578. <pre>public&nbsp;void&nbsp;run&#8203;(java.lang.String&nbsp;classname,
  579. java.lang.String[]&nbsp;args)
  580. throws java.lang.Throwable</pre>
  581. <div class="block">Loads a class and calls <code>main()</code> in that class.</div>
  582. <dl>
  583. <dt><span class="paramLabel">Parameters:</span></dt>
  584. <dd><code>classname</code> - the loaded class.</dd>
  585. <dd><code>args</code> - parameters passed to <code>main()</code>.</dd>
  586. <dt><span class="throwsLabel">Throws:</span></dt>
  587. <dd><code>java.lang.Throwable</code></dd>
  588. </dl>
  589. </li>
  590. </ul>
  591. </li>
  592. </ul>
  593. </li>
  594. </ul>
  595. </div>
  596. </div>
  597. <!-- ========= END OF CLASS DATA ========= -->
  598. <!-- ======= START OF BOTTOM NAVBAR ====== -->
  599. <div class="bottomNav"><a name="navbar.bottom">
  600. <!-- -->
  601. </a>
  602. <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
  603. <a name="navbar.bottom.firstrow">
  604. <!-- -->
  605. </a>
  606. <ul class="navList" title="Navigation">
  607. <li><a href="../overview-summary.html">Overview</a></li>
  608. <li><a href="package-summary.html">Package</a></li>
  609. <li class="navBarCell1Rev">Class</li>
  610. <li><a href="class-use/Loader.html">Use</a></li>
  611. <li><a href="package-tree.html">Tree</a></li>
  612. <li><a href="../deprecated-list.html">Deprecated</a></li>
  613. <li><a href="../index-all.html">Index</a></li>
  614. </ul>
  615. </div>
  616. <div class="subNav">
  617. <ul class="navList">
  618. <li><a href="../javassist/CtPrimitiveType.html" title="class in javassist"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
  619. <li><a href="../javassist/LoaderClassPath.html" title="class in javassist"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
  620. </ul>
  621. <ul class="navList">
  622. <li><a href="../index.html?javassist/Loader.html" target="_top">Frames</a></li>
  623. <li><a href="Loader.html" target="_top">No&nbsp;Frames</a></li>
  624. </ul>
  625. <ul class="navList" id="allclasses_navbar_bottom">
  626. <li><a href="../allclasses-noframe.html">All&nbsp;Classes</a></li>
  627. </ul>
  628. <div>
  629. <script type="text/javascript"><!--
  630. allClassesLink = document.getElementById("allclasses_navbar_bottom");
  631. if(window==top) {
  632. allClassesLink.style.display = "block";
  633. }
  634. else {
  635. allClassesLink.style.display = "none";
  636. }
  637. //-->
  638. </script>
  639. <noscript>
  640. <div>JavaScript is disabled on your browser.</div>
  641. </noscript>
  642. </div>
  643. <div>
  644. <ul class="subNavList">
  645. <li>Summary:&nbsp;</li>
  646. <li>Nested&nbsp;|&nbsp;</li>
  647. <li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
  648. <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
  649. <li><a href="#method.summary">Method</a></li>
  650. </ul>
  651. <ul class="subNavList">
  652. <li>Detail:&nbsp;</li>
  653. <li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
  654. <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
  655. <li><a href="#method.detail">Method</a></li>
  656. </ul>
  657. </div>
  658. <a name="skip.navbar.bottom">
  659. <!-- -->
  660. </a></div>
  661. <!-- ======== END OF BOTTOM NAVBAR ======= -->
  662. <p class="legalCopy"><small><i>Javassist, a Java-bytecode translator toolkit.<br>
  663. Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.</i></small></p>
  664. </body>
  665. </html>