import java.io.File; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.net.URL; import java.net.URLClassLoader; import org.apache.commons.lang3.reflect.FieldUtils; public class JarTools { protected static Method addURL = null ; static{ try { addURL = URLClassLoader.class.getDeclaredMethod("addURL", new Class[] { URL.class }) ; addURL.setAccessible(true); } catch (Exception e) { } } /** * 动态加载Jar包到内存中 * */ public static Object loadJar(String jarFile, String className) { try { File file = new File( jarFile ); if (!file.exists()) { throw new RuntimeException(jarFile + "不存在"); } addURL.invoke(ClassLoader.getSystemClassLoader(), new Object[] { file.toURI().toURL() }); return Class.forName( className ,false , ClassLoader.getSystemClassLoader() ).newInstance(); } catch (Exception e) { e.printStackTrace(); } finally { } return null; } public static void main(String[] args) throws Exception { Object loadJar = loadJar("C:/commons-io-2.4.jar", "org.apache.commons.io.Charsets") ; Field field = loadJar.getClass().getField("UTF_8"); System.out.println(FieldUtils.readDeclaredStaticField(loadJar.getClass(), field.getName())); } }