In this
post, I am going to explain how to load a class using URLClassLoader.
a.
Create
a jar file
b.
Load
the class from jar file using URLClassLoader.
Create
a jar file
Create
Employee.java file and follow below directory structure.
$tree . └── com └── sample └── demoapp └── model └── Employee.java
Employee.java
package com.sample.demoapp.model; public class Employee { public String toString() { return "Represent Employee Information"; } }
Compile
Employee.java.
$javac com/sample/demoapp/model/Employee.java $ $tree . └── com └── sample └── demoapp └── model ├── Employee.class └── Employee.java
Create
‘demoapp.jar’ file by executing below command.
jar -cvf
demoapp.jar *
$jar -cvf demoapp.jar * added manifest adding: com/(in = 0) (out= 0)(stored 0%) adding: com/sample/(in = 0) (out= 0)(stored 0%) adding: com/sample/demoapp/(in = 0) (out= 0)(stored 0%) adding: com/sample/demoapp/model/(in = 0) (out= 0)(stored 0%) adding: com/sample/demoapp/model/Employee.class(in = 326) (out= 244)(deflated 25%) adding: com/sample/demoapp/model/Employee.java(in = 137) (out= 112)(deflated 18%) $ $tree . ├── com │ └── sample │ └── demoapp │ └── model │ ├── Employee.class │ └── Employee.java └── demoapp.jar
Step 2:
Load the class using
URLClassLoader.
URL url =
new URL("file:/Users/krishna/Documents/demoapp.jar");
URLClassLoader
classLoader = new URLClassLoader(new URL[] {url});
Class
clazz = classLoader.loadClass("com.sample.demoapp.model.Employee");
Step 3:
Once the class is
loaded, you can create an instance to the class Employee and use.
Object obj
= clazz.newInstance();
App.java
package com.sample.app; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; public class App { public static void main(String args[]) throws MalformedURLException, ClassNotFoundException, InstantiationException, IllegalAccessException { URL url = new URL("file:/Users/krishna/Documents/TechnicalDocuments/Java/examples/classloading/demoapp.jar"); URLClassLoader classLoader = new URLClassLoader(new URL[] {url}); Class clazz = classLoader.loadClass("com.sample.demoapp.model.Employee"); Object obj = clazz.newInstance(); System.out.println(obj); } }
Run
App.java, you can able to see below messages in console.
Represent
Employee Information
No comments:
Post a Comment