blob: 80bb8fc38dfda5193b5eb7f0f657e9053b86505e [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 * CA 95054 USA or visit www.sun.com if you need additional information or
21 * have any questions.
22 */
23
24/*
25 * Creates a URLClassLoader from 2 file URLs. The first
26 * file URL is constructed from the given argument. The
27 * second is the SDK tools.jar. Once created the test
28 * attempts to load another test case (ListConnectors)
29 * using the class loader and then it invokes the list()
30 * method.
31 */
32import java.net.URL;
33import java.net.URLClassLoader;
34import java.io.File;
35import java.lang.reflect.Method;
36
37public class JdiLoadedByCustomLoader {
38
39 public static void main(String args[]) throws Exception {
40 // create files from given arguments and tools.jar
41 File f1 = new File(args[0]);
42 String home = System.getProperty("java.home");
43 String tools = ".." + File.separatorChar + "lib" +
44 File.separatorChar + "tools.jar";
45 File f2 = (new File(home, tools)).getCanonicalFile();
46
47 // create class loader
48 URL[] urls = { f1.toURL(), f2.toURL() };
49 URLClassLoader cl = new URLClassLoader(urls);
50
51 // load ListConnectors using the class loader
52 // and then invoke the list method.
53 Class c = Class.forName("ListConnectors", true, cl);
54 Method m = c.getDeclaredMethod("list");
55 Object o = c.newInstance();
56 m.invoke(o);
57 }
58}