Propertiesを使用してオブジェクトを作成するときnew Properties()、そのオブジェクトにはまだデータが格納されていません。properties.getProperty("PRIVATE")常に が返されるため、意味がありませんnull。
ファイルを作成したと主張していますが、オブジェクト.propertiesにロードしている場所はどこにもありません。Properties
properties.load(new FileInputStream(readerForProperties));
そのファイルを読み取ることができる を使用してファイルに定義したプロパティ(そのようなファイルの作成方法については、 API ドキュメント.propertiesを参照してください) は、メソッドを使用してアクセスできるようになります。ReadergetProperty()
path変数を使用FileInputStreamして、 をロードするために使用される を作成していますKeyStore。その場合、path はキー ストアへのパスである必要があります。
私が書いた例を、ドキュメントを読まずに (または少なくとも理解せずに) コピー/貼り付けたようです。
私の例では、"Private"プロパティ名として使用しましたが、それは関係ありません。"pathToKS"または"keystore"またはという名前を付けたい場合"banana"は、そうすることができます。
私の場合、.propertiesファイルは次のようになります。
PUBLIC c:/examples/signatures/public.cer
ROOTCERT c:/examples/signatures/CACertSigningAuthority.crt
PRIVATE c:/examples/signatures/private.p12
PASSWORD secret
したがって、私の場合、properties.getProperty("PRIVATE")はキーストアproperties.getProperty("PUBLIC")を返し、公開鍵properties.getProperty("ROOTCERT")を返し、認証局の公開鍵をproperties.getProperty("PASSWORD")返し、キーストアのパスワードと、公開鍵に対応するキーストアに保存されている秘密鍵のパスワードを返します (これらのパスワードは同一である必要はありません)。
次のようにキーストアへのパスを保存する場合:
banana c:/examples/signatures/private.p12
これを行う必要があります:
String path = properties.getProperty("banana");
さらにコードを書く前に、ドキュメントを注意深く読んでください。ドキュメントを読むと、時間を大幅に節約できます。