package com.elink.util; 
/*  * <p>Company: 凌科软件 www.elingke.com </p>  * @author liubaojun  * @version 1.0  * Created on 2004-11-29  * 来源于 elinkBSP 部分源代码  */ 
import java.lang.reflect.*; import java.net.*; 
public class ClassUtil {  /**    @param strClassName    @param argsType    @param args    @return Object    @throws java.lang.NoSuchMethodException    @throws java.lang.SecurityException    @throws java.lang.ClassNotFoundException    @throws java.lang.InstantiationException    @throws java.lang.IllegalAccessException    @throws java.lang.IllegalArgumentException    @throws java.lang.reflect.InvocationTargetException   */  public static Object loadClass(String strClassName, Class[] argsType,        Object[] args)   throws NoSuchMethodException, SecurityException, ClassNotFoundException,   InstantiationException, IllegalAccessException,   IllegalArgumentException, InvocationTargetException  {   Object returnObj = null;   Class className = null;   Constructor constructor = null;   className = Class.forName(strClassName);   constructor = className.getConstructor(argsType);   returnObj = constructor.newInstance(args);   return returnObj;  } 
 /**    @param strClassName    @return Object    @throws java.lang.NoSuchMethodException    @throws java.lang.SecurityException    @throws java.lang.ClassNotFoundException    @throws java.lang.InstantiationException    @throws java.lang.IllegalAccessException    @throws java.lang.IllegalArgumentException    @throws java.lang.reflect.InvocationTargetException   */  public static Object loadClass(String strClassName)   throws NoSuchMethodException, SecurityException, ClassNotFoundException,   InstantiationException, IllegalAccessException,   IllegalArgumentException, InvocationTargetException  {   return loadClass(strClassName, null, null);  }    public static Object loadClass(String strClassName, Object defObj)  {   try   {    return loadClass(strClassName, null, null);   }   catch( Throwable ex )   {    LogUtil.logException( ex );   }   return defObj;  } 
 /**    @param classObject    @param strMethodName    @param argsType    @param args    @return Object    @throws java.lang.NoSuchMethodException    @throws java.lang.SecurityException    @throws java.lang.IllegalAccessException    @throws java.lang.IllegalArgumentException    @throws java.lang.reflect.InvocationTargetException   */  public static Object invokeMothod(Object classObject, String strMethodName,           Class[] argsType, Object[] args)   throws NoSuchMethodException, SecurityException, IllegalAccessException,   IllegalArgumentException, InvocationTargetException  {   Method concatMethod = classObject.getClass().getMethod(strMethodName,    argsType);   return concatMethod.invoke(classObject, args);  } 
 /**    @param classObject    @param strMethodName    @return Object    @throws java.lang.NoSuchMethodException    @throws java.lang.SecurityException    @throws java.lang.IllegalAccessException    @throws java.lang.IllegalArgumentException    @throws java.lang.reflect.InvocationTargetException   */  public static Object invokeMothod(Object classObject, String strMethodName)   throws NoSuchMethodException, SecurityException, IllegalAccessException,   IllegalArgumentException, InvocationTargetException  {   return invokeMothod(classObject, strMethodName, null, null);  } 
 /**    @param classObject    @param strFieldName    @return Object    @throws java.lang.NoSuchFieldException    @throws java.lang.SecurityException    @throws java.lang.IllegalArgumentException    @throws java.lang.IllegalAccessException   */  public static Object getFieldValue(Object classObject, String strFieldName)   throws NoSuchFieldException, SecurityException,   IllegalArgumentException, IllegalAccessException  {   Object retObj = null;   Field field;   field = classObject.getClass().getDeclaredField(strFieldName);   retObj = field.get(classObject);   return retObj;  } 
 /**    @param className    @return String   */  public static String whereClass(String className)  {   String retStr = null;   if (!className.startsWith("/"))   {    className = "/" + className;   }   className = className.replace('.', '/');   className = className + ".class";   java.net.URL classUrl = getResource(className);   if (classUrl != null)   {    String str = classUrl.getFile();    retStr = str;   }   return retStr;  } 
 /**    @param name    @return java.net.URL   */  public static URL getResource(String name)  {   return ClassUtil.class.getResource(name);  }    public static void compiler( String targetDir, String filename, String classpath ) throws Exception  { //   javac -d E:/test  -classpath C:\work\WEB-INF\lib\bss.jar e:/test/TestVector.java   String str = "javac -d "+targetDir+" -classpath "+classpath+" "+filename;   LogUtil.logInfo( str );   Runtime runtime = Runtime.getRuntime();   Process p = runtime.exec( str );  }    public static void compiler( String targetDir, String filename ) throws Exception  { //   javac -d E:/test  -classpath C:\work\WEB-INF\lib\bss.jar e:/test/TestVector.java   Runtime runtime = Runtime.getRuntime();   Process p = runtime.exec( "javac -d "+targetDir+" "+filename );  } }
   
 
  |