Properties
を使用してオブジェクトを作成するときnew Properties()
、そのオブジェクトにはまだデータが格納されていません。properties.getProperty("PRIVATE")
常に が返されるため、意味がありませんnull
。
ファイルを作成したと主張していますが、オブジェクト.properties
にロードしている場所はどこにもありません。Properties
properties.load(new FileInputStream(readerForProperties));
そのファイルを読み取ることができる を使用してファイルに定義したプロパティ(そのようなファイルの作成方法については、 API ドキュメント.properties
を参照してください) は、メソッドを使用してアクセスできるようになります。Reader
getProperty()
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");
さらにコードを書く前に、ドキュメントを注意深く読んでください。ドキュメントを読むと、時間を大幅に節約できます。