Popular Posts
javax.net.ssl.SSLHandshakeException: Connection closed by peer in Android 5.0 Lollipop Recently, there is a error occurs when access website via ssl connection like below although it worked fine several days ago. // Enable SSL... DNS SERVER LIST Google 8.8.8.8 8.8.4.4 TWNIC 192.83.166.11 211.72.210.250 HiNet 168.95.1.1 168.95.192.1 Seednet 北區 DNS (台北, 桃園, 新竹, 宜蘭, 花蓮, 苗栗) 139.... CORS in Asp.net MVC Web API v2 Step 1. Install cors from NeGet Step 2. Enable cors in config using System; using System.Collections.Generic; using System.Linq; using ...
Blog Archive
Stats
Dynamic load class & invoke method
import java.io.FileInputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;

public class ClassLoaderSample {

    public static void main(String[] args) throws Exception {
        String jarFile = "C:/workspace/bruce.lib/Blib.jar";

        URLClassLoader dynamicLoader = URLClassLoader.newInstance(new URL[] { new URL("file", null, jarFile) }, ClassLoaderTest.class.getClassLoader());

        // List content
        JarInputStream jis = new JarInputStream(new FileInputStream(jarFile));
        JarEntry entry = null;

        while ((entry = jis.getNextJarEntry()) != null) {
            String name = entry.getName();
            System.out.println(name);
        }

        System.out.println("=====");

        // Inovke method
        Class objClass = Class.forName("aaa.bbb.PrintTable", true, dynamicLoader);
        Object obj = objClass.newInstance();
        Method objMethod = objClass.getDeclaredMethod("print");
        objMethod.invoke(obj);

        // Field value
        Field objField = objClass.getDeclaredField("tableName");
        System.out.println(objField.get(obj));
        // Change field value
        objField.set(obj, "myTable");
    }

}