Он говорит, что класс, который он не может найти, - Tester.GUI.api.Test1
. Из какого каталога вы запускаете тест, и в каком каталоге находится ваш Test1
код?
Если вы установите переменную -classpath
, вам также может понадобиться включить текущий каталог в ваш classpath. Итак, если ваша оригинальная команда была
java -classpath C:\foo.jar;D:\bar1\bar2.jar org.junit.runner.JUnitCore Tester.GUI.api.Test1
вы можете добавить текущий каталог в ваш classpath, добавив ;.
в конец вашей опции -classpath
, например:
java -classpath C:\foo.jar;D:\bar1\bar2.jar;. org.junit.runner.JUnitCore Tester.GUI.api.Test1
Это будет работать, если класс Test1
находится в каталоге Tester\GUI\api
в текущем каталоге.
С настройкой classpath в Java хитроумно то, что вы не хотите указывать каталог, в котором находятся ваши фактические файлы .java, но вместо этого вы хотите указать каталог, в котором вы можете найти каталоги, названные по имени пакеты в вашем коде.
Например, если я скомпилировал класс Foo
в пакете bar.baz
, то у меня должен быть файл с именем Foo.class
в каталоге с именем baz
в другом каталоге с именем bar
. Если я хочу включить Foo
в мой classpath, и если Foo.class
расположен в
C:\Users\Joe\Code\bar\baz\Foo.class
, тогда я должен либо запустить
java -classpath C:\Users\Joe\Code [main class goes here]
или я должен изменить каталог на C:\Users\Joe\Code
и запустить
java -classpath . [main class goes here]