Правильный способ обращения к tools.jar кроссплатформенным способом
Я создаю инструмент диагностики JVM и подключаюсь к JVM с помощью JMX. Проблема, с которой я здесь сталкиваюсь, заключается в том, что мне нужно иметь возможность загружать tools.jar таким образом, чтобы он был совместим с Unix и Windows, в настоящее время Я использую сгенерированные gradle сценарии запуска для загрузки tools.jar
к пути к классам, но, похоже, этот метод зависит от слишком многих факторов.
Кто-нибудь знает рекомендуемый или изящный способ сделать эту банку доступной на пути к классам, даже не догадываясь, где она?
1 ответ
Решение
ToolProvider.getSystemToolClassLoader()
Это возвращает экземпляр ClassLoader
что известно о tools.jar
,
Если вы хотите точный путь, используйте
((URLClassLoader) ToolProvider.getSystemToolClassLoader()).getURLs()