سؤال

أريد تشفير سلسلة ، لكن مكتبات 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

consle 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

المكتبة المستوردة i.imgur.com/t9am9.png

هل كانت مفيدة؟

المحلول

تعتمد المكتبة التي قمت باستيرادها على مكتبة أخرى تحتوي org/apache/commons/lang/exception/NestableRuntimeException. هذا يقع في مكتبة Apache Commons Lang.

في الواقع ، إذا قمت بتنزيل Jasypt من http://sourceforge.net/projects/jasypt/files/ ستحصل على ملف مضغوط يحتوي على مجلد lib مع هذه الملفات:

  • العموم-كودك -11. جار
  • العموم-لانج -2.1.JAR
  • Jasypt -1.6.Jar

يجب عليك تضمين كل هذه في مشروعك.

لقد جربته ويعمل برنامجك الصغير بشكل جيد (ويطبع ما يلي)

Hello World
v09l9j/BIeSoMkQXc2CY0VIJLlLAQTYq

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top