2012-03-22 1 views
0
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 
) 

Здравствуйте, я хочу запустить класс Java в командной строке в цикле while. Я искал в Google и нашел способ сделать это. Но теперь он только делает это в первый раз, второй и третий раз, когда он сказал:Запуск Java in while loop shell

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. 

Я не знаю, почему, esspecialy, потому что он работает в первый раз правильно. Только второй и третий раз, когда он идет в цикле, он получает эту ошибку.

ответ

4

Это, скорее всего, из-за ваших cd заявлений - вы должны быть изменения от текущего каталога, который содержит svnkit.jar так, что он не может найти класс Test больше на втором цикле (или Test.class?).

Чтобы исправить это, добавьте cd в нужную директорию, прежде чем звонить java.

Или, что лучше, использовать абсолютные пути в качестве аргумента Java CLASSPATH, т.е.

java -cp c:/folder1;c:/folder2/svnkit.jar.

+0

Согласен, это наиболее вероятная причина. Ошибка, которую вы получаете, просто означает, что JVM не может найти класс 'Test', который вы указали при запуске JVM. – jefflunt

+0

Хмм .. Это все еще не работает, но я думаю, что я сделал что-то не так: java -cp.; "C: \ dotCMS Автоматическая установка \ svnkit.jar" "C: \ dotCMS Автоматическая установка \ Тест" %% a – Gynnad

+1

@Gynnad вместо «C: \ dotCMS Automatic Install \ Test» просто положил тест –