Java POI でパスワード保護されたExcelを読むとエラー

エラーの内容

他サイトさんを参考にして、Java POI を利用し、パスワード保護された Excel ファイルを読もうとした人は、こんなエラーを目にするかもしれません。

org.apache.poi.EncryptedDocumentException: Export Restrictions in place - please install JCE Unlimited Strength Jurisdiction Policy files

私は何度も同じメッセージを見てきたのに、対処法を忘れて都度ネットで調べて同じ対応をして・・・を繰り返してきました。
自分がわかればいいようにしか書いていませんが、ご容赦ください。

メッセージの内容は、要するに読んだ通りですが、

JCE Unlimited Strength Jurisdiction Policy Files をインストールしたまえよ

と言っています。

対処

  1. Googleで「JCE Unlimited Strength Jurisdiction Policy Files」で検索
  2. Oracleが提供しているページで、以下のように末尾にJDKバージョン番号がついたページがヒットします。
    ※ 執筆している現在ではそのようにヒットしますが、時間とともにヒット内容が変わるかもしれません

    1. JCE Unlimited Strength Jurisdiction Policy Files 6
    2. JCE Unlimited Strength Jurisdiction Policy Files 7
    3. JCE Unlimited Strength Jurisdiction Policy Files 8
  3. 環境に合わせたファイルをダウンロード
    ※ 私の場合は 8 のついたものをダウンロードした。
  4. Java8用のものを例に、ダウンロードしたファイルを展開すると、以下のようなファイル構成。
    • jce_policy-8
      • UnlimitedJCEPolicyJDK8
        • local_policy.jar
        • README.txt
        • US_export_policy.jar
  5. local_policy.jar, US_export_policy.jar を、そのプログラムが使用しているJREに上書き
    1. Eclipseを使用して実行している場合は、Eclipseインストールフォルダ内のJREを参照しているでしょうし、
      単体でインストールしたJREを参照しているならそこに上書きです。
      ※ これはすいません、あなたの環境のことはあなたにしか分からないので、頑張って探してください。
  6. 終了

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL