for /f "tokens=* delims= " %%a in (plugins.txt) do (
echo %%a
java -cp .;svnkit.jar Test %%a
cd %dotcms_home%
call ant deploy-plugins > test1.txt
FindStr "BUILD SUCCESSFUL" test1.txt
del "test1.txt"
cd C:\dotCMSResults
echo Errorlevel: %ERRORLEVEL%
if %ERRORLEVEL% ==1 (echo ^<tr BGCOLOR=\"#FF0000\"^>^<td^>Build^</td^>^<td^>Fout\!^</td^>^</tr^> >> goedje.html ) else (echo ^<tr BGCOLOR=\"#00FF00\"^>^<td^>Build^</td^>^<td^>Gelukt\!^</td^>^</tr^> >> goedje.html)
cd %dotcms_home%
call ant undeploy-plugins > test.txt
)
您好,我想在while循环中在命令行中运行Java类。我在Google上搜索并找到了一种方法。但现在他只是第一次这样做,第二次和第三次他说:
Exception in thread "main" java.lang.NoClassDefFoundError: Test
Caused by: java.lang.ClassNotFoundException: Test
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)
Could not find the main class: Test. Program will exit.
我不知道为什么,特别是因为他第一次跑步是正确的。只有第二次和第三次他进入循环时他才会收到此错误。
答案 0 :(得分:4)
这很可能是由于您的cd
语句 - 您必须更改包含svnkit.jar
(或Test.class
?)的当前目录,以便它不能在第二个循环中再找到Test类。
要解决此问题,请在调用cd
之前将java
添加到正确的目录。
或者,更好的是,使用绝对路径作为java类路径参数,即
java -cp c:/folder1;c:/folder2/svnkit.jar
。