Java 我应该把sqlite db文件放在哪里,这样我的jar就可以访问它了?这对连接字符串有何影响?

Java 我应该把sqlite db文件放在哪里,这样我的jar就可以访问它了?这对连接字符串有何影响?,java,ant,sqlite,Java,Ant,Sqlite,我正在使用Ant来构建和运行我的简单java程序,但是对于我的文件层次结构应该如何布局,以便程序能够访问和修改sqlite db文件,我还相当不确定 我听说我不能将db文件包含在jar中,因为这将导致它变成只读。我唯一的另一个猜测是将它放在相对于jar文件的某个位置(最好是同一个目录?),但我不确定在执行“ant run”时如何处理我的ant build.xml文件来反映这一点,也不确定这会如何修改jdbc连接字符串 我当前的jdbc连接代码: logger.debug("Setting up

我正在使用Ant来构建和运行我的简单java程序,但是对于我的文件层次结构应该如何布局,以便程序能够访问和修改sqlite db文件,我还相当不确定

我听说我不能将db文件包含在jar中,因为这将导致它变成只读。我唯一的另一个猜测是将它放在相对于jar文件的某个位置(最好是同一个目录?),但我不确定在执行“ant run”时如何处理我的ant build.xml文件来反映这一点,也不确定这会如何修改jdbc连接字符串

我当前的jdbc连接代码:

logger.debug("Setting up database connection");
Class.forName("org.sqlite.JDBC");
dbConnection = DriverManager.getConnection("jdbc:sqlite:images.db");
我的ant build.xml

<project name="Maower" basedir="." default="main">
    <property name="src.dir" value="src"/>
    <property name="build.dir" value="build"/>
    <property name="classes.dir" value="${build.dir}/classes"/>
    <property name="jar.dir" value="${build.dir}/jar"/>
    <property name="lib.dir" value="lib"/>
    <property name="log.dir" value="log"/>

    <property name="main-class" value="good.maower.Maower"/>

    <path id="classpath">
        <fileset dir="${lib.dir}" includes="**/*.jar"/>
        <fileset dir="${src.dir}" includes="**/*.properties"/>
    </path>

    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>

    <target name="compile">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath" includeantruntime="false"/>
        <copy todir="${classes.dir}" overwrite="true">
            <fileset dir="${src.dir}" includes="**/*.properties"/>
        </copy>
    </target>

    <target name="jar" depends="compile">
        <mkdir dir="${jar.dir}"/>
        <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="${main-class}"/>
            </manifest>
        </jar>
    </target>

    <target name="run" depends="jar, input-runargs">
        <java fork="true" classname="${main-class}">
            <classpath>
                <path refid="classpath"/>
                <path location="${jar.dir}/${ant.project.name}.jar"/>
            </classpath>
            <arg line="${args}"/>
        </java>
    </target>

    <target name="input-runargs" unless="args" description="Ensures that subscriber email addresses are specified in command line arguments">
        <input addProperty="args" message="List subscribers: "/>
    </target>

    <target name="clean-build" depends="clean,jar"/>

    <target name="main" depends="clean,jar"/>

</project>