2011-02-04 9 views
2

最近、私はManifest.mfファイルのクラスパッチについて少し混乱しました。ですから、私が望むのは、いくつかのプロパティファイルを私のdistribution.jarからアウトソーシングして、java-source-filesを変更せずにその隣に置くことです。Distribution Manifest.mf内の単一のドット( "。")は何を意味しますか?

次の例は、この時点で私はこのようなプロパティファイルを開くことができます。

this.getClass().getClassLoader().getRessourceAsStream("/config/jdbc.properties"); 

jdbc.propertiesは、「設定」という名前のパッケージと「資源」と呼ば日食sourcefolderに位置しています。今私がディストリビューションをビルドすると、私はdistribution.jarの隣のフォルダにそれらをアウトソースしますが、私はまだソースコードを変更せずにそれらを見つけることができます。 (absolout pathesなし)今まで働いていた

のみgenerellソリューションは、次のMANIFEST.MFた: ""

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.7.1 
Created-By: 17.1-b03 (Sun Microsystems Inc.) 
Main-Class: com.ymene.Main 
Class-Path: . 

ザ・クラスパスで.jarのルートを指しているようですか?私はそれがマニフェストファイルの前にそれを見たことはなかった。パスが同じである限り、リソースがjarの内部または外部にビルドされるかどうかに関わらず、java-sourcecodeを全く変更しないという私の望みを達成するための正しいアプローチであるかどうかは疑問です。

誰でも私に教えてください。 manifest.fmファイルには私にとって望ましくない副作用がありますか?それが当てはまらないなら、Antを使ってそのManifest.mf Class-Pathエントリ( "私"が意味する)を生成することは可能でしょうか?または、それを達成するための他の解決策がありますか?このトピック上の任意の助けを事前に

おかげで、 ymene

答えて

4

単一のドットは、「このディレクトリ」を意味します。

+0

この特別な場合の「このディレクトリ」は、.jar内のmanifest.mfファイルのディレクトリを意味しますか?これは私には分かりにくいでしょう。なぜなら、パトスは今のところうまくいきませんか、それともまだ私が欠けている部分があるからですか? – crusam

+1

いいえ、jarファイルが置かれているパスを意味します。 "lib /"のようなサブディレクトリでライブラリを使用している場合は、マニフェストのclass-pathセクションにあるすべてのjarを指定する必要があります。 – Matten

関連する問題