2012-03-02 19 views
5

私のコードはJARファイルとしてデプロイされています。 JARには、自分のコードに必要なサードパーティJARの数を含むディレクトリlibが含まれています。私はMANIFEST.MFを介して、これらをAntを使用してclasspathに追加しました。JARファイルのクラスパスに現在のディレクトリを追加する

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.7.0 
Created-By: 20.5-b03 (Sun Microsystems Inc.) 
Main-Class: com.package.Class 
Class-Path: ../lib/c3p0-0.9.1.2.jar ../lib/dbunit-2.4.8.jar ../lib/gua 
va-10.0.1.jar ../lib/hsqldb.jar ../lib/javax.jms.jar ../lib/log4j-1.2 
.16.jar ../lib/mockito-all-1.9.0.jar ../lib/ojdbc14.jar ../lib/slf4j- 
api-1.6.4.jar ../lib/slf4j-log4j12-1.6.4.jar ../lib/xmlunit-1.3.jar 

また、queries.propertiesというファイルがJARのルートにあります。

さらに2つのプロパティファイルが必要です。私はこれらをJARファイルと同じディレクトリに置いて、コードがそれらを見つけることができるようにしたいと思います。私はコードがこれらのプロパティファイルを見つけることができると信じて、彼らはclasspathにする必要があります。したがって、JARファイルのディレクトリをclasspathに追加する必要があります。

まず、プロパティファイルの場所を見つける別の方法を使用するのが正しいアプローチですか?

これが正しい場合、MANIFEST.MFのJARの現在のディレクトリをクラスパスに追加するにはどうすればよいですか? Antタスクを使用して、libディレクトリのJARファイルをclasspathに追加しました。

+0

*私はプログラムのユーザーだ場合は1であることを、私はそれらを好む*「私は、これらのJARファイルと同じディレクトリに存在したいと思います」 ) 'user.home'のサブディレクトリ(バックアップされていないソフトウェアとは対照的に、私のバックアップスクリプトに簡単にアクセスできる場所)にあります。または.. 2)アプリケーションのインストール時に私が選択した場所(ファイルチューザーを使用)で。 –

+0

@AndrewThompsonご協力いただきありがとうございます。アプリケーションはスケジュールされたタスクとして実行されるため、ユーザーの介入は必要ありません。デプロイメントを支援するために、プロパティーファイルとJARファイルを一緒に保つことがより重要です。おかげさまで – mip

答えて

5

.を現在のディレクトリへの参照として追加しようとしましたか?

<jar jarfile="dummy.jar"> 
      <manifest> 
        <attribute name="Main-Class" value="com.package.Class"/> 
        <attribute name="Class-Path" value=". ${jar.class.path}"/> 
      </manifest>    
    </jar> 

も参照してくださいExecutable jar won't find the properties files

+0

それはうまくいった。 – mip

関連する問題