我有一个客户端项目的属性文件。我想将客户端导出为runnable jar,但属性文件 not 应该集成到这个jar中。因为我当然希望对它进行编辑,而不必重新编译jar客户端文件。
如何使用eclipse以这种方式导出它?
答案 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>