クライアント プロジェクトのプロパティ ファイルがあります。クライアントを実行可能な jar としてエクスポートしたいのですが、プロパティ ファイルをこの jar に統合しないでください。もちろん、jar クライアント ファイルを再コンパイルせずに編集したいからです。
Eclipseでこのようにエクスポートするにはどうすればよいですか?
私は現在Javaを使用していませんが、Eclipseを使用して実行可能なJARをエクスポートしたことがあります。プロパティを使用して設定を保存すると、Jar ファイルの周囲のフォルダーにファイルが自動的に生成されました。これがあなたの役に立つかどうかはわかりませんが、最初のポイントになるかもしれません....
プロパティ ファイルを JAR ファイルと同じディレクトリに配置する場合は、Ant ビルドに追加の手順を追加して、プロパティ ファイルと JAR ファイルを圧縮します。
そうでない場合は、Java アプリケーションを初めて実行するときに、必要な場所に Java コードでプロパティ ファイルを作成します。
標準の 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>
それらをプロジェクトワークスペースに配置してjar内に配置するか(ただし、これは望ましくないため、そうではありません)、事前定義されたディレクトリからロードする必要があります。たとえば、プロパティファイルを常に実行可能なjarファイルと同じディレクトリ。
ちなみに、プロパティ ファイルを jar 内に配置した場合、プロジェクトを再コンパイルする必要はありません。jar ファイルは単なるパッケージです。解凍してプロパティ ファイルを編集し、再度パックすることができます。要求どおりに機能します。
気が変わったら、この投稿を参照してください。