Java 在一个JAR中导出JTD和我的项目?

Java 在一个JAR中导出JTD和我的项目?,java,sql,sql-server-2008,jar,jtds,Java,Sql,Sql Server 2008,Jar,Jtds,我试图让我的应用程序与jTDS(MS SQL Server 2008)一起工作。因此,我做了以下工作: 下载了最新的jTDS驱动程序(1.3.0) 将驱动程序粘贴到项目文件夹中 通过添加jar和 在订单和导出选项卡中,我选择了所有条目 然后我出口了这个罐子。由于它不是一个可运行的jar,我后来对它进行了测试,但它似乎找不到我的驱动程序(java.lang.ClassNotFoundException:net.sourceforge.jtds.jdbc.driver) 当我在Eclipse中测

我试图让我的应用程序与jTDS(MS SQL Server 2008)一起工作。因此,我做了以下工作:

  • 下载了最新的jTDS驱动程序(1.3.0)
  • 将驱动程序粘贴到项目文件夹中
  • 通过添加jar和
  • 订单和导出
    选项卡中,我选择了所有条目
然后我出口了这个罐子。由于它不是一个可运行的jar,我后来对它进行了测试,但它似乎找不到我的驱动程序(
java.lang.ClassNotFoundException:net.sourceforge.jtds.jdbc.driver

当我在Eclipse中测试它时,只执行以下内容:

public static void main(String[] args) {}
    String classForName = "net.sourceforge.jtds.jdbc.Driver";

    try
    {
        // embedding driver for sql connection
        Class.forName(classForName);

        con = java.sql.DriverManager.getConnection(getConnectionUrl(), user, pass);
        if (con != null)
        {
            JOptionPane.showMessageDialog(null, "Connection Successful!");
        }

    }
    catch (Exception e)
    {
        Log.writeStackTrace(e);
    }
}

。。然后它就像一个符咒。所以在我看来,问题似乎在于包括我的jTDS jar。我错过什么了吗?

该死,我只是来晚了一点


标准Java类加载器不支持在JAR中嵌套JAR。您可以将Jar组合在一起(正如您所做的那样!),也可以将更复杂的类加载器与类似于一个Jar的东西一起使用(http://one-jar.sourceforge.net/).

您的代码将在哪里运行,以及如何打包?它是一个web应用程序还是桌面应用程序?它是一个桌面应用程序,它将作为一种api在本地运行。@Zutty我知道了!通过创建一个空的
publicstaticvoidmain
方法并将jar导出为可运行的,它将我所有的外部jar打包成一个。不过,我想知道,如果没有本演练,是否就没有使用外部罐子导出的解决方案?呵呵:)在您试图提供帮助时,我仍然会标记您的答案,以及您的单罐子建议;)