Jak uzyskać listę wszystkich modułów w bieżącej instancji JVM za pomocą kodu Java? Czy to możliwe? Jeśli tak, to w jaki sposób?Jak programowo uzyskać listę wszystkich modułów w języku Java 9?
8
A
Odpowiedz
10
ModuleLayer.boot().modules().stream()
.map(Module::getName)
.forEach(System.out::println);
3
Korzystanie słoik lub katalogu modułów jako wejście dla aplikacji, można ewentualnie użyć ModuleFinder
rozpocząć mecz i dalsze wykorzystanie w findAll
znaleźć zbiór wszystkich referencji moduł ten Finder Znajdź.
Path dir1, dir2, dir3;
ModuleFinder finder = ModuleFinder.of(dir1, dir2, dir3);
Set<ModuleReference> moduleReferences = finder.findAll();
To jest łatwo możliwe przy opcji wiersza poleceń do listy modułów jak:
java -p <jarfile> --list-modules
które powinny być wystarczające, jednak, jeśli nie chce celowo dostać się tweaking things z ModuleLayer
i Configuration
z , jak wskazano dokładnie przez @Alan's answer.
Powiązane problemy
- 1. Drupal: Jak uzyskać listę modułów
- 2. Jak uzyskać listę wszystkich znaków do wydrukowania w języku C#?
- 3. Gdzie można uzyskać listę prawie wszystkich słów w języku angielskim?
- 4. Jak mogę wyświetlić listę wszystkich modułów w repozytorium CVS?
- 5. Programowo uzyskać listę widoków MVC?
- 6. Jak uzyskać listę wszystkich zapytań uruchomionych na stronie w ColdFusion 9
- 7. Używanie modułów pobierających/ustawiających w języku Java
- 8. Jak uzyskać listę wszystkich użytkowników w SharePoint
- 9. Linux: jak uzyskać listę wszystkich widocznych okien?
- 10. Jak uzyskać listę wszystkich plików (lub modułów) zawartych w pakiecie w pakiecie Webpack
- 11. Jak usunąć warstwę modułów w Javie 9?
- 12. Jak uzyskać listę wersji kompatybilnych modułów Angular 2?
- 13. Jak uzyskać listę wszystkich obiektów HttpSession w aplikacji internetowej?
- 14. Jak uzyskać listę wszystkich zainstalowanych czcionek?
- 15. Jak uzyskać listę wszystkich obiektów? - PostgreSQL
- 16. Jak uzyskać listę wszystkich dostępnych poleceń powłoki?
- 17. Jak mogę uzyskać listę wszystkich właściwości ABRecordRef?
- 18. JavaScript: Jak uzyskać listę wszystkich otwartych okien
- 19. Launch Jetty 9 Programowo
- 20. Uzyskaj listę wszystkich serwerów druku w domenie w języku C#
- 21. Jak utworzyć listę DDL w języku C# programowo
- 22. Jak uzyskać listę wszystkich rozszerzonych właściwości dla wszystkich obiektów
- 23. Jak uzyskać adnotację zajęć w języku Java?
- 24. Jak uzyskać listę plików/katalogów adresu URL katalogu w języku Java?
- 25. Jak uzyskać listę wszystkich węzłów podrzędnych w TreeView w .NET
- 26. Jak uzyskać listę wszystkich zainstalowanych aplikacji do routingu?
- 27. Android dexclassloader uzyskać listę wszystkich klas
- 28. Jak wyświetlić listę wszystkich zmiennych klasy
- 29. Magento - Jak uzyskać listę wszystkich dozwolonych krajów w liście opcji?
- 30. Jak uzyskać listę wszystkich elementów znajdujących się w miejscu kliknięcia?
Jest to prawdziwe tylko wtedy, gdy warstwa startowa jest jedyną warstwą. Jeśli moduły są ładowane przez różne programy ładujące klasy, lista ta będzie niekompletna. –
Oczywiście, ale fragment kodu dostanie osobę zadającą pytanie. Istnieją oczywiście interfejsy API do narzędzi i debuggerów, które wyliczają wszystkie moduły w maszynie wirtualnej, w tym moduły nienazwane, ale to znacznie wykracza poza moje podejrzenia. –
Nie zgadzam się, Alan Bateman - ta odpowiedź jest niekompletna. Jak wspominasz w swoim komentarzu, nie zwraca to nawet nienazwanych modułów ani automatycznych modułów, które są i będą bardzo powszechne w początkowych latach Java 9. –