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文件中的数据库文件。怎么做。
请提前告知我们。
答案 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文件没有数据库文件的副本,坐在里面。
感谢所有看过这个的人.....