引用的Java包未复制到控制台应用程序

引用的Java包未复制到控制台应用程序,java,netbeans,Java,Netbeans,我正在使用Netbeans7.4开发一个java项目 这是我的原型项目的结构。我有一个参考MS SQL JDBC驱动程序包的库项目(B)。这个项目有一个简单的类,它打开到SQL server的连接,然后关闭它。我有一个控制台应用程序(a),它引用了库项目B。一切都编译得很好 当我在项目B中实例化类以打开连接时,我发现驱动程序找不到。在仔细研究之后,我发现SQL驱动程序jar文件并没有复制到我的控制台应用程序中。一旦我在控制台应用程序中添加了作为引用库的SQL驱动程序包jar文件,一切正常 我来自

我正在使用Netbeans7.4开发一个java项目

这是我的原型项目的结构。我有一个参考MS SQL JDBC驱动程序包的库项目(B)。这个项目有一个简单的类,它打开到SQL server的连接,然后关闭它。我有一个控制台应用程序(a),它引用了库项目B。一切都编译得很好

当我在项目B中实例化类以打开连接时,我发现驱动程序找不到。在仔细研究之后,我发现SQL驱动程序jar文件并没有复制到我的控制台应用程序中。一旦我在控制台应用程序中添加了作为引用库的SQL驱动程序包jar文件,一切正常

我来自VisualStudio背景,所有引用的库都被复制到消费应用程序中。如果可能的话,我如何在Netbeans/Java世界中实现同样的功能。例如,如果我添加我的库项目(B)作为对控制台应用程序(A)的引用,那么项目B中的SQL JDBC包引用也应该被识别


感谢

与VS不同,VS中的链接器是Java世界中对象内部的所有引用,这些引用是隐藏的,可能会沿着其他jar库传播,这些jar库没有链接到整个应用程序中,但需要将它们包含在
类路径上
,以便Java VM可以加载应用程序引用的类。netbeans IDE具有可以包含项目依赖项的项目属性。您还可以创建一个项目库,该库组合了应用程序引用的一组JAR

使用Maven、Ivy或类似的依赖项管理/构建工具。我将来可能会使用一些构建管理工具。目前我正试图一步一步地学习如何回到java。你能详细说明一下你的建议吗?我想我已经按照你的建议做了。在Netbeans中,包依赖项被添加到“Libraries”文件夹下。如果是这样,那么我已经在库项目中引用了我的JDBC包。到目前为止还不错。为什么还要在控制台应用程序中添加相同的JDBC包依赖项呢?如果控制台应用程序用于连接数据库,那么它也可能对JDBC有依赖项。您还可以将库项目作为依赖项添加到console应用程序,这样您将获得对JDBC库的可传递依赖项。console应用程序不会直接与JDBC交互。只有库项目用于连接到数据库并获取结果集。我只在library项目中封装了所有与DB相关的详细信息。console应用程序是主项目,与library项目相比,它应该解决所有依赖项。您了解什么是可传递依赖项吗?netbeans应该可以选择在构建控制台项目时将可传递依赖项导出到控制台项目。