从CUBRID数据库中的类java文件加载jar

时间:2012-05-15 00:30:57

标签: java cubrid

我有一个java类,我想在外部jar中加载一个类。

jar是xstream-1.4.2.jar,类是com.thoughtworks.xstream.XStream

我在谷歌搜索,但我无法插入我的项目(jar)的外部引用

这是我的代码:

File file  = new File("c:\\cubrid\\bin\\xstream-1.4.2.jar");
URL url = file.toURL();  
URL[] urls = new URL[]{url};
ClassLoader cl = new URLClassLoader(urls);
Class cls = cl.loadClass("com.thoughtworks.xstream.XStream");
cadena = cls.toXML(objeto);

我不知道如何调用方法,我在google中阅读了一些文档,但抱歉是我在Java上的第二天编程。

我想生成一个.class库。这是为另一个应用程序加载的。为此,我需要使用一些方法从外部加载jar。

此类文件将作为Java存储过程加载到CUBRID数据库服务器中。

我的问题是错误:java.lang.reflect.InvocationTargetException

我的代码

import java.io.File;
import java.net.URL;
import java.net.URLClassLoader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.xml.parsers.DocumentBuilderFactory;

public class jp2 {

    static ResultSet resultado = null;
    static String cadena = null;
    static Statement statement = null;
    static DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();   

public static String Validar(String tblUsuariosLogin,String tblUsuariosPassword)
{


    try {
        Class.forName("cubrid.jdbc.driver.CUBRIDDriver");
        Connection con = DriverManager.getConnection("jdbc:default:connection:"); 


            File file  = new File("c:\\cubrid\\bin\\xstream-1.4.2.jar");
            URL url = file.toURL();  
            URL[] urls = new URL[]{url};
            ClassLoader cl = new URLClassLoader(urls);

            Class cls = cl.loadClass("com.thoughtworks.xstream.XStream");

               // XStream xstream = new XStream();
                cadena = cls.toXML(objeto); 


            return cadena;

        } catch (Exception e) {
            // TODO: handle exception
        }
        return cadena;


    }



}

CUBRID数据库允许您加载.class文件并在存储过程中使用它。

1 个答案:

答案 0 :(得分:4)

查看URLClassLoader,它允许您从外部JAR文件加载类。

/编辑
您的问题是您试图在对象的Class上调用方法,而不是对象本身。如果要调用该方法,则需要创建Class的{​​{3}}(请参阅提供的第二种方法),并在结果上调用该方法。

您确定您不仅希望在类路径上拥有该JAR文件并直接处理这些类,而不是使用反射来加载和实例化您需要的类吗?