我正在尝试使用jasypt加密一个简单的字符串。当我使用eclipse IDE时,它可以正常工作,但是在尝试通过终端时却出现了一些问题。
下面是我使用的代码。
package com.jasypt.encryption.demo;
import org.jasypt.util.text.BasicTextEncryptor;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class BasicDemo {
public static void main(String[] args) throws IOException {
String secretkey = "home@123";
String message = "This is a confidential message. Be Careful !!";
BasicTextEncryptor basicTextEncryptor = new BasicTextEncryptor();
basicTextEncryptor.setPassword(secretkey);
String encrMess = basicTextEncryptor.encrypt(message);
System.out.println(encrMess);
String decrMess =basicTextEncryptor.decrypt(encrMess);
System.out.println(decrMess);
}
}
我导航到包含pom.xml文件的文件夹,然后在终端中输入以下命令
1) mvn package
2) mvn install
3) java -cp target/demo-0.0.1-SNAPSHOT.jar com.jasypt.encryption.demo.BasicDemo
我收到BUILD SUCCESS消息,并且jar文件已成功创建,但是运行3rd命令时出现一些错误。错误截图
如果我犯了一些非常基本的错误或由于我是Java新手而使用了多余的代码行,请原谅并提出一些建议。
欢迎来到StackOverflow!
当您使用Maven编译程序时(实际上这不是编译器,而是可以在后台调用Java编译器的程序包管理器),Maven负责下载和管理程序使用的依赖项,在这种情况下为Jasypt。
然后,当您尝试以简单的方式启动程序时,java
有关运行程序所必需的依赖关系的信息就会丢失,只是因为Maven不再是游戏的一部分。因此,您必须给Java运行时一个提示,以在其中找到Jasypt依赖项,就像使用demo-jar一样。在编译过程中,Maven将Jasypt jar存储在驱动器上的本地Maven存储库文件夹中。
现在,您只需将这个jar的路径添加到类路径中,一切就会运行:
java -cp target/demo-0.0.1-SNAPSHOT.jar:<path to your Maven repository>/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar com.jasypt.encryption.demo.BasicDemo
(Jasypt库的版本可能在您的计算机上有所不同。)
如果您有很多依赖关系,将它们全部手动添加到类路径将变得很麻烦。在Exec-plugin的帮助下,Maven还可以为您完成此任务。与其java
直接开始,不如让Maven为您做管道:
mvn exec:java -Dexec.mainClass="com.jasypt.encryption.demo.BasicDemo"
您还可以检查此线程以获取有关此插件及其选项的更多详细信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句