Вопрос

Я хочу зашифровать строку, но стандартные библиотеки 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 Pumcle:

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/ Вы получите ZIP-файл, содержащий lib-папку с этими файлами:

  • Commons-Codec-1.1.jar
  • Commons-lang-2.1.jar
  • Jasypt-1.6.jar.

Вы должны включить все это в вашем проекте.

Я попробовал, и ваша маленькая образец программы работает нормально (и печатает следующее)

Hello World
v09l9j/BIeSoMkQXc2CY0VIJLlLAQTYq

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top