У меня есть простая Java-программа, которая выводит мой путь к классам. Структура папок выглядит следующим образом:.Запуск Java-программы на Cygwin - classpath не найден
[~/tmp/bin]# ls
launcher/ PrintClasspath.class*
И копия того же класса еще один уровень вниз в
[~/tmp/bin/launcher]# ls
PrintClasspath.class*
Когда я прыгаю в мою ~/tmp
каталог и запустить PrintClasspath
в моем ~/tmp/bin
каталоге, я может запустить программу просто отлично, указывая ./bin
как путь к классам.
[~/tmp]# java -cp "./bin" PrintClasspath
/C:/Cygwin/home/user/tmp/bin/
Или я могу запустить один и тот же файл, который я вложенный в каталоге ~/tmp/bin/launcher
, если я изменить путь к классам следующим образом:
[~/tmp]# java -cp "./bin/launcher" PrintClasspath
/C:/Cygwin/home/user/tmp/bin/launcher/
Но когда я пытаюсь сидеть в моем ~/tmp
директории, и попробуйте запустить мой класс в каталоге ~/tmp/bin/launcher
с ./bin
как мой путь к классам и квалифицироваться, где класс находится с помощью следующих действий:
[~/tmp]# java -cp "./bin" launcher.PrintClasspath
Error: Could not find or load main class launcher.PrintClasspath
ОТКАЗЫВАЕТСЯ. Я запустил тот же тест в своем ящике Linux и определил, где класс находится в подкаталоге, после того как он предоставил несколько каталогов для классов, работает нормально.
Первоначально предполагалось, что это был ньюанс Windows/Cygwin, но я пробовал одно и то же упражнение в командной строке Windows и тот же результат. Что мне здесь не хватает. Мне просто нужно запускать свои программы с Windows Java с полным классом классов?