导出为可运行的jar,但具有可编辑的属性文件?

时间:2012-10-01 12:35:41

标签: java eclipse

我有一个客户端项目的属性文件。我想将客户端导出为runnable jar,但属性文件 not 应该集成到这个jar中。因为我当然希望对它进行编辑,而不必重新编译jar客户端文件。

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

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

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

如果您改变主意,请参阅this发布。

答案 2 :(得分:0)

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

如果没有,请让Java代码在第一次运行Java应用程序时创建所需的属性文件。

答案 3 :(得分:0)

似乎不可能使用标准Eclipse的导出作为可运行的JAR(右键单击项目 - >导出 - > Runnable 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>