@version 创建时间:2019年1月25日 上午9:53:59 类说明
*/
public class MainControl {
public static void main(String[] args) throws UnsupportedEncodingException {
//设备解析类是否存在
boolean ifLibrary =false;
Class analyticClass=null;
try {
analyticClass=Class.forName(“com.edu.xxx.library.”+“AnalyticPulsator”);
ifLibrary=true;
} catch (ClassNotFoundException e) {
}catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
URLClassLoader urlClassLoader =null;
if(!ifLibrary){
//获取数据采集程序所在目录
URL urlPath=MainControl.class.getProtectionDomain().getCodeSource().getLocation();
System.out.println(urlPath.getPath());
//包路径定义
URL url = new URL("file:"+urlPath.getPath()+"/AnalyticPulsator.jar");
//设置类加载器
urlClassLoader = new URLClassLoader(new URL[] { url });
//加载设备数据解析类
analyticClass = urlClassLoader.loadClass("com.edu.ouc.library.AnalyticPulsator");
}else{
//加载设备数据解析类
analyticClass = Class.forName("com.edu.ouc.library."+"AnalyticRoller");
}
// 设置需要传递的参数
Object[] parameters = new Object[2];
parameters[0] = "1212";
parameters[1] = "----";
// 设置需要传递的参数类型
Class[] parameterTypes = new Class[2];
parameterTypes[0] = String.class;
parameterTypes[1] = String.class;
//获取数据解析GetData方法
Method method = analyticClass.getMethod("GetData", parameterTypes);
String data;
try {
//传递参数并执行方法
data = method.invoke(analyticClass.newInstance(), parameters).toString();
System.out.println(data);
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
4、运行MainControl.java,结果如下:
备注:
Eclipse导出Jar包方式可自行百度。