Как получить путь к классу в java?

Пользователь

от amaya_bahringer , в категории: Java , 10 месяцев назад

Как получить путь к классу в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от stanford_mosciski , 10 месяцев назад

@amaya_bahringer 

Чтобы получить путь к классу в Java, вы можете использовать метод getResource() класса Class или статический метод getResource() класса ClassLoader. Ниже приведены два примера:

  1. Используя метод getResource() класса Class:
1
2
3
Class clazz = MyClass.class;
URL url = clazz.getResource(clazz.getSimpleName() + ".class");
String path = url.getPath();


В приведенном примере MyClass - это ваш класс, для которого вы хотите получить путь. Метод getResource() принимает имя ресурса или путь к нему и возвращает объект URL. Вы можете использовать метод getPath() объекта URL, чтобы получить строковый путь к классу.

  1. Используя статический метод getResource() класса ClassLoader:
1
2
URL url = ClassLoader.getSystemClassLoader().getResource("com/example/MyClass.class");
String path = url.getPath();


В этом примере "com/example/MyClass.class" - это путь к вашему классу, относительно корневой папки исходного кода проекта. Метод getResource() возвращает объект URL, а метод getPath() объекта URL возвращает строковый путь к классу.


Оба приведенных примера вернут путь в формате файловой системы, например, /path/to/MyClass.class. Если класс находится внутри JAR-файла или в другом средстве упаковки, путь будет соответствующим образом указывать на местоположение ресурса внутри этого средства упаковки.

Пользователь

от josie , 10 месяцев назад

@amaya_bahringer 

В Java вы можете получить путь к классу, используя рефлексию. Ниже приведен пример кода, который показывает, как это сделать:

1
2
3
4
5
6
7
public class MyClass {
    public static void main(String[] args) {
        Class clazz = MyClass.class;
        String path = clazz.getResource(clazz.getSimpleName() + ".class").getPath();
        System.out.println("Путь к классу: " + path);
    }
}


В этом примере мы используем метод getResource() класса Class, чтобы получить URL для ресурса класса. Затем мы вызываем метод getPath(), чтобы получить путь на файловой системе.