哪个是真正的数据库? JAR文件中的一个或资源

时间:2017-08-11 17:05:09

标签: java sqlite javafx-8 windows-7-x64 netbeans-8

2017年8月12日

我的项目结构是这样的...... FamilyTreeV03 •Src     o我所有的班级文件       o DBRoutines.java(这是执行所有数据库操作的那个) •资源     o数据库        FamilyTreeDB.db(sqlite数据库)。     o图像         我的图像文件png,jpeg等。 在我的DBRoutines中指定了数据库,如

private java.sql.Connection RO_Connection;
    private final String sqliteDBname = "jdbc:sqlite:resources/database/FamilyTreeDB.db";

... .. 在名为DBConnect()的函数中建立连接如下。

RO_Connection = java.sql.DriverManager.getConnection(sqliteDBname);

在项目设置中,我已经包含了资源目录和资源(我认为它会进入Build-impl.xml !!!!

对于图像,我已将路径指定为

File thisImageFile;
if (Gender == "Male") {
    thisImageFile = new File("resources\\Images\\Gentleman.jpg");
} else {
    thisImageFile = new File("resources\\Images\\Lady.jpg");
}

我做了一个干净的构建这个项目,一切都运行良好的Netbeans IDE。 该数据库位于G:\ 64BitJavaPrograms \ FamilyTreeV03 \ build \ classes \ Database目录中。不要问我为什么&位于G:\ 64BitJavaPrograms \ FamilyTreeV03 \ build \ classes \ Images下的图像。

当我尝试从DIST目录的命令提示符执行时......它无法看到数据库或图像。他们坐在DATABASE或IMAGES目录下的JAR文件中。这对DBRoutines.java中的代码不可见。我不得不将RESOURCES目录复制到DIST目录,一切正常。

现在DIST目录中将有两个SQLITE数据库,一个在JAR文件中,另一个在RESOURCES / DATABASE目录中。

我很困惑。

有人可以提供帮助....我想只使用位于JAR文件中的数据库文件。怎么做。

请提前告知我们。

1 个答案:

答案 0 :(得分:0)

解决了问题。

我的源目录结构是源文件的project \ src和数据库文件的project \ resources \ database以及我的图像文件的project \ resources \ images。

数据库例程将数据库定义如下。

private final String sqliteDBname = "jdbc:sqlite:resources/database/FamilyTreeDB.db";
RO_Connection = java.sql.DriverManager.getConnection(sqliteDBname);

在Build.xml中我添加了

<target name="-post-compile">
    <copy todir="dist/resources/database">
        <fileset dir="build/classes/database"/>
    </copy>
    <copy todir="dist/resources/images">
        <fileset dir="build/classes/images"/>
    </copy>
</target>      

输出是project \ dist \ resources \ database,project \ dist \ resources \ images和project \ dist \ project.jar。 jar文件没有数据库文件的副本,坐在里面。

感谢所有看过这个的人.....