package com;import java.net.URL;
import java.net.URLClassLoader;
import java.sql.Connection;
import java.sql.Driver;
import java.util.Properties;public class Test {
public static void main(String[] args) {
try {
URL[] urls = new URL[] { new URL(
"file:F:/runtime-EclipseApplication/test/lib/mysql-connector-java-5.0.3-bin.jar") };
URLClassLoader classLoader = new URLClassLoader(urls);
Class<?> c = classLoader.loadClass("com.mysql.jdbc.Driver");
Driver d = (Driver) c.newInstance();
Properties p = new Properties();
p.put("user", "root");
p.put("password", "sa");
Connection conn = d.connect("jdbc:mysql://localhost:3306/casp", p); conn.close();
Thread.sleep(10000);
} catch (Exception e) {
e.printStackTrace();
}
}
}在线程睡眠期间,无法删掉lib目录
import java.net.URLClassLoader;
import java.sql.Connection;
import java.sql.Driver;
import java.util.Properties;public class Test {
public static void main(String[] args) {
try {
URL[] urls = new URL[] { new URL(
"file:F:/runtime-EclipseApplication/test/lib/mysql-connector-java-5.0.3-bin.jar") };
URLClassLoader classLoader = new URLClassLoader(urls);
Class<?> c = classLoader.loadClass("com.mysql.jdbc.Driver");
Driver d = (Driver) c.newInstance();
Properties p = new Properties();
p.put("user", "root");
p.put("password", "sa");
Connection conn = d.connect("jdbc:mysql://localhost:3306/casp", p); conn.close();
Thread.sleep(10000);
} catch (Exception e) {
e.printStackTrace();
}
}
}在线程睡眠期间,无法删掉lib目录
我是做eclipse插件开发的,编写了一个插件,它使用了URLClassLoader加工程(不是插件工程)里的jar后,删不掉。
关闭eclipse,在删,就行了。
对象引用的情况是删除不掉的。
除非你把urls 数组的相应对象引用
置为null。等待垃圾回收