Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jasypt in cmd: cannot find main class

I am using jasypt 1.9.2 in Windows 7 x64 cmd. Here's encrypt.bat content:

ECHO ON


set SCRIPT_NAME=encrypt.bat
set EXECUTABLE_CLASS=org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI
set EXEC_CLASSPATH=.
if "%JASYPT_CLASSPATH%" == "" goto computeclasspath
set EXEC_CLASSPATH=%EXEC_CLASSPATH%;%JASYPT_CLASSPATH%

:computeclasspath
IF "%OS%" == "Windows_NT" setlocal ENABLEDELAYEDEXPANSION
FOR %%c in (%~dp0lib\*.jar) DO set EXEC_CLASSPATH=!EXEC_CLASSPATH!;%%c
IF "%OS%" == "Windows_NT" setlocal DISABLEDELAYEDEXPANSION

set JAVA_EXECUTABLE=java
if "%JAVA_HOME%" == "" goto execute
set JAVA_EXECUTABLE="%JAVA_HOME%\bin\java"


:execute
%JAVA_EXECUTABLE% -classpath %EXEC_CLASSPATH% %EXECUTABLE_CLASS% %SCRIPT_NAME% %*

I got this error(I also tried cd /d [the dir where encrypt.bat is located] and the error persists):

enter image description here

The error message points out that the main class of org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI is no where to be found. I don't understand this. I tried to change JAVA_HOME value in system variables and no luck.

like image 205
WesternGun Avatar asked Nov 20 '15 12:11

WesternGun


3 Answers

I finally downloaded again the original release and it works. Seems that I messed something up when I was trying to edit the encrypt.bat... I noticed this difference:

With @echo on, I see this output in working version:

C:\Users\myname>FOR %c in (C:\Users\myname\Documents\[APP]\jasypt-1.9.2-dist_new\bin\..\lib\*.jar) DO set EXEC_CLASSPATH=!EXEC_CLASSPATH!;%c

And in my answer I see this:

C:\Users\myname>FOR %c in (C:\Users\myname\Documents\[APP]\jasypt-1.9.2-dist_new\bin\lib\*.jar) DO set EXEC_CLASSPATH=!EXEC_CLASSPATH!;%c 

Note the .. before lib.

Also: don't put jaspyt in some path with space! It also cause error, even with quotes.

like image 145
WesternGun Avatar answered Oct 17 '22 22:10

WesternGun


I also had a same issue when I put unzipped jasypt-1.9.2 folder inside Program Files. You need to move jasypt-1.9.2 folder to C: drive. You should be able to encrypt string without any issues.

like image 44
Krishna Avatar answered Oct 17 '22 23:10

Krishna


I had the same problem with version 1.9.3 . I did the following steps to get it to work:

  1. I cloned the project form its root (https://github.com/jasypt/jasypt.git)
  2. I compiled and packaged the project in /jasypt/ directory using maven (this is the project that is used by the script)
  3. I created the a lib next to bin directory and then I copied the generated jar files into it
  4. then I ran the encrypt.bat again

This way I solved the problem.

like image 1
M-Soley Avatar answered Oct 17 '22 23:10

M-Soley