В Java мы устанавливаем путь к классу во время компиляции файлов Java, но зачем нам нужно устанавливать путь к классам во время выполнения? Любая конкретная причина, по которой JVM нуждается в пути к классам для запуска файлов .class
?Почему Java требуется classpath во время выполнения
ответ
Файлы на пути к классу предоставляют фактический исполняемый код (в Java .class
файлах), который необходимо запустить JVM.
CLASSPATH - это переменная среды, используемая виртуальной машиной Java для поиска файлов классов (включая основной класс).
В качестве альтернативы вы можете передать -cp или -класса-путь в качестве аргумента виртуальной машины Java для указания пути к классам, где ваш главный класс зависит от.
Например,
export CLASSPATH=/opt/javatv:/opt/mhp:/opt/main-class;
java MainClass
(или)
java -cp /opt/javatv;/opt/mhp;/opt/main-class MainClass;
(или)
java -class-path /opt/javatv;/opt/mhp;/opt/main-class MainClass;
Я не смог удалить свой случайный клик и может выбрать только +1 или -1. Ваш ответ в порядке на вопрос о том, как использовать classpath. Но вопрос в том, «зачем он нужен во время работы»? – WineGoddess
@WineGoddess JVM использует эту переменную, пытаясь загрузить классы в Runtime. JVM входит в картину только во время выполнения. –
В Java мы задаем путь к классам во время компиляции для компиляции Java-файлов
Есть ли у нас? Я не.
но почему нам нужно установить путь к классам во время выполнения?
Таким образом, JVM знает, где можно найти классы.
yes of cource, при компиляции без компилятора classpath дает ошибку. не так ли? Итак, по вашему мнению, почему нам нужно classpath во время компиляции? – Meet
@Meet Компилятору нужен только путь к классу, если в классах, которые компилируются классы, которые не находятся в скомпилированных классах, или их система исходного кода или JDK, есть ссылки. – EJP
да, вы правы, я также имел в виду, что мне нужно classpath во время компиляции только для сторонних банках. – Meet
Одна из причин, по которой я вижу, заключается в том, что если мне понадобится по каким-то причинам, чтобы библиотеки, требуемые моим приложением, разбросаны по нескольким точкам монтирования/дискам/разделам или даже папкам, я бы не смог указать JVM где мой код. Как обходной путь, JVM может выглядеть по всей файловой системе и индексированию, но насколько это будет эффективно/быстро?
Приветствие
Часто люди думают, что компиляция делает для отдельного приложения без необходимости указывать на зависимости. Но это не так.
Если у вашего кода нет зависимостей, вам не нужно устанавливать путь к классам.
Вам может понадобиться/хочет включить -cp во время выполнения:
Для того чтобы указать, где искать сторонние и пользовательские файлы вашего класса требует во время выполнения (* .jar, * .class , * .properties и т. д.).
Чтобы переопределить переменную среды CLASSPATH.
- 1. Настройка CLASSPATH во время выполнения
- 2. Добавить папку, содержащую источники java, в classpath во время выполнения
- 3. Добавление файлов в java classpath во время выполнения
- 4. Как установить несколько элементов classpath в java во время выполнения?
- 5. Сканирование classpath/modulepath во время выполнения в Java 9
- 6. Как добавить класс в ClassPath во время выполнения?
- 7. Требуется время выполнения C++?
- 8. Загрузка банок во время выполнения
- 9. Java интерпретируется во время выполнения?
- 10. Во время выполнения Java jar возвращает java.lang.NoClassDefFoundError
- 11. Добавление dex в classpath для Android во время выполнения
- 12. Требуется установить CLASSPATH хорошо
- 13. Ошибка во время выполнения Voldemort
- 14. Почему ClassCastException является ошибкой во время выполнения?
- 15. Почему FileProvider.getUriForFile вызывает исключение во время выполнения
- 16. Загрузка файлов JAR во время выполнения в Java
- 17. класса во время выполнения
- 18. Почему во время компиляции нельзя разрешить полиморфизм во время выполнения?
- 19. Внешний вид Java во время выполнения
- 20. Перезагрузка используемых классов во время выполнения Java
- 21. Найти зависимости java-класса во время выполнения
- 22. Java Reflection, почему аргументы типа супертипа сохраняются во время выполнения
- 23. JAVA: Почему я продолжаю получать эти ошибки во время выполнения?
- 24. Ошибка во время выполнения JDBC
- 25. Почему аннотация @Nonnull проверяется во время выполнения?
- 26. Почему окно больше во время выполнения?
- 27. Темы - почему исключение бросается во время выполнения?
- 28. Почему потоки C# простаивают во время выполнения?
- 29. Почему omnet ++ 4.6 останавливается во время выполнения?
- 30. Почему я получаю ошибку во время выполнения
Без этого JVM не знает, где искать классы. –
Это не может быть указано во время компиляции, потому что вы можете развернуть свое программное обеспечение с другой версией на другой машине с разными путями по мере разработки ПК или сервера сборки. –