this.parent = parent;\r
}\r
\r
+ public ClasspathContext getParent(){\r
+ return parent;\r
+ }\r
+\r
public static final ClasspathContext getDefaultContext(){\r
return DEFAULT_CONTEXT;\r
}\r
\r
public synchronized void addClasspath(URL url){\r
+ System.out.printf("add %s to %s%n", url, this);\r
classpath.add(url);\r
loader = null;\r
}\r
\r
+ public int getClasspathSize(){\r
+ int count = classpath.size();\r
+ if(parent != null){\r
+ count += parent.getClasspathSize();\r
+ }\r
+ return count;\r
+ }\r
+\r
+ public synchronized URL[] getClasspathList(){\r
+ List<URL> list = new ArrayList<URL>();\r
+ for(Iterator<URL> i = classpath(); i.hasNext(); ){\r
+ list.add(i.next());\r
+ }\r
+ return list.toArray(new URL[list.size()]);\r
+ }\r
+\r
public void clear(){\r
classpath.clear();\r
}\r
import java.io.File;\r
import java.io.IOException;\r
import java.net.MalformedURLException;\r
+import java.net.URL;\r
+import java.util.Iterator;\r
\r
import javax.swing.Box;\r
import javax.swing.JButton;\r
if(cplist != null && cplist.length >= 0){\r
for(int i = 0; i < cplist.length; i++){\r
try{\r
- context.addClasspath(new File(cplist[i]).toURI().toURL());\r
+ URL url = null;\r
+ try{\r
+ url = new URL(cplist[i]);\r
+ } catch(MalformedURLException e){\r
+ url = new File(cplist[i]).toURI().toURL();\r
+ }\r
+ context.addClasspath(url);\r
}catch(IOException ee){\r
}\r
}\r
}\r
\r
public void reset(){\r
+ classpath.removeAllElements();\r
+ bootClasspath.removeAllElements();\r
try{\r
+ ClasspathContext context = stigmata.getEnvironment().getClasspathContext();\r
+ for(Iterator<URL> i = context.classpath(); i.hasNext(); ){\r
+ classpath.addValue(i.next().toString());\r
+ }\r
+\r
addClasspath(bootClasspath, System.getProperty("java.class.path"));\r
addClasspath(bootClasspath, System.getProperty("sun.boot.class.path"));\r
} catch(SecurityException e){\r