在cmd中进行jasypt:找不到主类

Wes*_*Gun 4 command-line program-entry-point batch-file jasypt

jasypt 1.9.2在Windows 7 x64中使用cmd。这里的encrypt.bat内容:

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% %*
Run Code Online (Sandbox Code Playgroud)

我收到此错误(我也尝试过cd /d [the dir where encrypt.bat is located]并且错误仍然存​​在):

在此处输入图片说明

错误消息指出,在org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI哪里找不到主要类。我不明白 我试图更改JAVA_HOME系统变量中的值,但是没有运气。

Wes*_*Gun 6

我终于再次下载了原始版本,并且可以正常工作。似乎在我尝试编辑encrypt.bat... 时弄乱了一些东西……我注意到了这一区别:

使用@echo on,我在工作版本中看到以下输出:

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
Run Code Online (Sandbox Code Playgroud)

在我的回答中,我看到了:

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 
Run Code Online (Sandbox Code Playgroud)

注意..之前lib

另外:不要将jaspyt放在带有空间的路径中!即使使用引号,它也会导致错误。

  • 我的路径中没有任何空格,但仍然收到此错误。 (3认同)
  • 将jaspyt文件夹直接放在C驱动器中,即“ C:\ jasypt-1.9.2 \ bin”,从而避免了空格,这对我来说很有效。 (2认同)