用这个语句:
Class.forName(ClassNameString).newInstance();不过前提是这个类具有一个无参的构造函数,否则结果未知。ClassNameString也必须是包括包名称的全称类名,也必须可以在类路径中可以找到。

解决方案 »

  1.   

    谢了。
    ClassNameString可以指向网络中的某个class吗?
    另外,如何才能够正确地调用新实例中的方法?
      

  2.   

    谢了。
    ClassNameString可以指向网络中的某个class吗?
    另外,如何才能够正确地调用新实例中的方法?
      

  3.   

    有的jdbc驱动必须加到classpath中,必须指定到路径。
    我用的是mysql,示例如下:
    set CLASSPATH=e:\jdk\lib\Tools.jar;e:\jdk\lib\dt.jar;.;e:\myjsp\server;e:\jakarta-tomcat\lib\servlet.jar;e:\jdk\driver\mysql.jar;数据库连接bean:
    package mydb;
    import java.sql.*;
    public class conn
    {
    String DBDriver = "org.gjt.mm.mysql.Driver";//数据库驱动
    String ConnStr = "jdbc:mysql://localhost:3306/net";//net为数据库名
    Connection conn = null;
    public conn() {
    try
    {
    Class.forName(DBDriver);
    }
    catch (java.lang.ClassNotFoundException error)
    {
    System.err.println(error.getMessage());
    }
    } public Connection getconn() {
    try
    {
    conn = DriverManager.getConnection(ConnStr,"","");
    //用户和口令为空
    return conn;
    }
    catch (SQLException errorc)
    {
    System.err.println(errorc.getMessage());
    return null;
    }
    } public void close() {
    try {
    conn.close();
    }
    catch (SQLException ex) {
    System.err.println(ex.getMessage());
    }
    }
    }返回记录集bean
    package mydb;
    import java.sql.*;
    public class result
    {
    Connection m_conn = null;
    Statement m_stmt = null;
    ResultSet m_rs = null;
    public result() {
    } public void setconn(Connection conn) {
    m_conn=conn;
    try {
            m_stmt = m_conn.createStatement();
    }
    catch (SQLException ex) {
    System.err.println("ExecuteQuery: " + ex.getMessage());
    }
    } public ResultSet executeQuery(String sql) {
    try {
            m_rs = m_stmt.executeQuery(sql);
    }
    catch (SQLException ex) {
    System.err.println("ExecuteQuery: " + ex.getMessage());
    }
    return m_rs;
    } public void executeUpdate(String sql) {
    try {
            m_stmt.executeUpdate(sql);
    }
    catch (SQLException ex) {
    System.err.println("ExecuteQuery: " + ex.getMessage());
    }
    } public void close() {
    try {
    m_rs.close();
    m_stmt.close();
    m_conn.close();
    }
    catch (SQLException ex) {
    System.err.println(ex.getMessage());
    }
    }
    }调用示例:
    <%@ page language="java" import="java.sql.*" %>
    <jsp:useBean id="conn" class="mydb.conn" scope="page"/>
    <jsp:useBean id="result" class="mydb.result" scope="page"/>
    <html>
    <head><title>Common Database Bean Test</title></head>
    <body>
    <%
    Connection myconn=conn.getconn();
    result.setconn(myconn);
    ResultSet rs=result.executeQuery("select * from bbs");
    while (rs.next()){
    out.println("<tr>");
    for(int j=1; j<=rs.getMetaData().getColumnCount(); j++){
    out.println("<td>"+rs.getObject(j)+"</td>");
    }
    out.println("</tr>");
    }
    rs.close();
    result.close();
    myconn.close();
    conn.close();
    %>
    </body>
    </html>hehe,搞了这么多,不知道对你有没有用。
      

  4.   

    Introduced with the Java 2 platform, the URLClassLoader just requires a URL array of where to find classes. In the URL list can be directories, ZIP files, or JAR files. 
    try {
      URL[] urlList = {
        new URL("http://java.sun.com/share/classes/"),
        new URL("http://www.jars.com/jediSearch.zip"),
        new URL("http://java.about.com/library/weekly/"),
        new File("myJar.jar").toURL()};
      ClassLoader loader = new URLClassLoader(urlList);
      Class c = loader.loadClass("TheClass");
      TheClass tc = (TheClass) c.newInstance();
    } catch (MalformedURLException e) {
      // load classes another way or display error message
    }
      

  5.   

    jdbc-odbc的java bean:package mydb;
    import java.sql.*;
    public class mydb {
    String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
    String sConnStr = "jdbc:odbc:sunshine";
    Connection conn = null;
    ResultSet rs = null;
    public mydb() {
    try {
    Class.forName(sDBDriver); 
    }
    catch(java.lang.ClassNotFoundException e) {
    System.err.println("mydb(): " + e.getMessage());
    }
    }public ResultSet executeQuery(String sql) {
    rs = null;
    try {
    conn = DriverManager.getConnection(sConnStr); 
    Statement stmt = conn.createStatement();
    rs = stmt.executeQuery(sql);

    catch(SQLException ex) { 
    System.err.println("aq.executeQuery: " + ex.getMessage());
    }
    return rs;
    }
    }肯定可以的
      

  6.   

    hehe,窗口开的太多,发错了,碍了大家眼,对不起
      

  7.   

    请问skyyoung(路人甲):在java 1 中可以吗?
    另外,如果需要记载的某个类的名称事先不知道,
    要到运行时才通过查询得知,此时如何确保正确
    的加载并实例化呢?兄弟谢了!另,多谢各位大虾的热情帮助,可惜加了几次分
    都没成功,faint!!!