質問

文字列を暗号化したいのですが、標準の Java ライブラリは複雑すぎます。そこで私はJASYPTに目を向けました。その使用と理解は非常に簡単ですが、ライブラリをEclipse 3.6にインポートし、「Hello」のような文字列をパスワード「123」で暗号化しようとすると。必ずエラーが発生します。何が間違っているのかわかりませんが、Eclipseで他のライブラリを使用したときにも同じことが起こると思います。

ソース

import org.jasypt.util.text.BasicTextEncryptor;

public class eMain {
 static BasicTextEncryptor textEncryptor = new BasicTextEncryptor();

 public static void main(String[] args) {
  System.out.println("Hello World");
  textEncryptor.setPassword("123");
  System.out.println(textEncryptor.encrypt("Hello World"));
 }
}

エラー:i.imgur.com/vBe8p.png

Eclipseコンソール:

java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
 at java.lang.ClassLoader.defineClass1(Native Method)
 at java.lang.ClassLoader.defineClassCond(Unknown Source)
 at java.lang.ClassLoader.defineClass(Unknown Source)
 at java.security.SecureClassLoader.defineClass(Unknown Source)
 at java.net.URLClassLoader.defineClass(Unknown Source)
 at java.net.URLClassLoader.access$000(Unknown Source)
 at java.net.URLClassLoader$1.run(Unknown Source)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at org.jasypt.util.text.BasicTextEncryptor.<init>(BasicTextEncryptor.java:67)
 at eMain.<clinit>(eMain.java:4)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
 at java.net.URLClassLoader$1.run(Unknown Source)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
 at java.lang.ClassLoader.loadClass(Unknown Source)
 ... 14 more

インポートされたライブラリiimgur.com/t9am9.png

役に立ちましたか?

解決

インポートしたライブラリは、以下を含む別のライブラリに依存しています。 org/apache/commons/lang/exception/NestableRuntimeException. 。これは、 Apache Commons Lang ライブラリ.

実際、JASYPT を次からダウンロードした場合、 http://sourceforge.net/projects/jasypt/files/ 次のファイルを含む lib フォルダーを含む zip ファイルを取得します。

  • commons-codec-1.1.jar
  • commons-lang-2.1.jar
  • jasypt-1.6.jar

これらすべてをプロジェクトに含める必要があります.

試してみたところ、小さなサンプル プログラムは正常に動作しました (次の結果が表示されました)。

Hello World
v09l9j/BIeSoMkQXc2CY0VIJLlLAQTYq

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top