1

我有一个客户项目的属性文件。我想将客户端导出为可运行的 jar,但不应将属性文件集成到此 jar 中。因为我当然想对其进行编辑,而不必重新编译 jar 客户端文件。

如何使用 eclipse 以这种方式导出它?

4

4 回答 4

2

我目前没有使用 Java,但我曾经使用 Eclipse 导出可运行的 JAR。我使用属性来存储设置,文件是在 Jar-File 的周围文件夹中自动生成的。我不知道这是否对您有帮助,但这可能是一个起点......

于 2012-10-01T12:46:09.117 回答
0

使用标准 Eclipse 的导出作为可运行 JAR 似乎不可能做到这一点(右键单击项目 -> 导出 -> 可运行 JAR 文件 -> 另存为 ANT 脚本)。但是,Eclipse 允许您将导出的定义存储为 Ant 文件,以后可以对其进行修改。

修改如下所示(我用注释标记了修改的部分;它应该很容易与您的 Eclipse 生成的脚本进行比较)。

<target name="create_run_jar">
    <jar destfile="/mytargetlib/myjar.jar">
        <manifest>
            <attribute name="Main-Class" value="Main"/>
              <!-- Here we only add lib/properties, the rest should be pre-generated by Eclipse -->
            <attribute name="Class-Path" value=". lib/myjar1.jar lib/myjar2.jar lib/properties"/>
        </manifest>
        <fileset dir="/bin" excludes="**/*.properties" /> 
    </jar>
    <delete dir="/mytargetdir/lib"/>
    <mkdir dir="/mytargetdir/lib"/>       
    <copy file="myjar.jar" todir="/mytargetdir/lib"/>
    <copy file="/myprojectdir/lib/myjar1.jar" todir="/mytargetdir/lib"/>
    <copy file="/myprojectdir/lib/myjar2.jar" todir="/mytargetdir/lib"/>
      <!-- Again, all the above was generated by Eclipse. We only add a copy of our property file --> 
        <mkdir dir="/mytargetdir/lib/properties"/>
        <copy file="/myprojectdir/properties/mypropertyfile.properties" todir="/mytargetdir/lib/properties"/>
      <!-- end of our addition --> 
</target>
于 2012-10-01T13:15:13.637 回答
0

您必须将它们放在项目工作区中,使其位于 jar 中(但不是这种情况,因为您不希望这样做)或从预定义的目录加载它们,例如,您可以要求属性文件始终位于与可运行的 jar 文件相同的目录。

顺便说一句,如果将属性文件放在 jar 中,则不必重新编译项目。jar 文件只是一个包,您可以将其解包,对属性文件进行编辑,然后再次打包。它会按照您的要求工作。

如果你改变主意,请看这篇文章。

于 2012-10-01T12:48:06.433 回答
0

如果您希望属性文件与 JAR 文件位于同一目录中,只需在 Ant 构建中添加一个额外步骤以压缩属性文件和 JAR 文件。

如果没有,让您的 Java 代码在第一次运行 Java 应用程序时在您想要的位置创建属性文件。

于 2012-10-01T12:57:11.717 回答