Java 8 на Windows 10 - CLASSPATH не работает - PullRequest
0 голосов
/ 07 октября 2019

Windows 10 1803 64-битная, Java JRE 8. Не установлен JDK.

У меня есть .jar в папке:

c:\users\myuser\KickAssembler\KickAss.jar

В разделе Системные переменные у меня есть CLASSPATHкак:

c:\users\myuser\KickAssembler\

В командной строке устанавливается CLASSPATH (проверяется с помощью ECHO).

В командной строке при попытке:

java -jar KickAss.jar

Возвращает:

Error: Unable to access jarfile KickAss.jar

Если я сначала записываю CD в каталог, а затем запускаю, он работает нормально. Похоже, что CLASSPATH как-то не используется. Я добавил местоположение в стандартную переменную Windows PATH, но она по-прежнему не работает.

Различные комбинации регистров для имени файла не работают. Windows настроена на показ скрытых файлов. Это не может быть проблема с разрешениями, потому что она работает, когда я сначала перехожу в каталог.

Что-нибудь еще, что я могу попробовать?

1 Ответ

1 голос
/ 07 октября 2019

CLASSPATH используется для определения пути, с которого Java будет загружать классы. CLASSPATH может содержать папки и файлы JAR, такие как: C: \ mybin; c: \ myjars \ some.jar Этот путь к классам будет загружать любой полностью определенный файл класса, находящийся в или ниже c: \ mybin и любой полностью квалифицированный класс в c: \ myjars \ some.jar . CLASSPATH не позволит JAVA найти ваш JAR-файл, как вы ожидаете, используя ключ -jar, он не ищет JAR-файл вдоль пути к классу, он будет искать только те, которые явно указаны в CLASSPATH, а затем только для классафайлы внутри них. Обратите внимание, что полностью квалифицированный означает пакет + класс , такой как: com.myorg.somepackage.someclass , а не просто someclass .

Как выЗамечено, если вы находитесь в папке, где находится kickass.jar, ваша командная строка работает, так как присутствует файл JAR. Если вы полностью ссылаетесь на файл JAR при выполнении команды из другой папки, командная строка также должна работать.

См. https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html для более подробной информации о том, как работает CLASSPATH. При использовании JAVA важно иметь четкое представление о CLASSPATH.

...