Mam pewien problem, nie rozumiem do końca jak ten mechanizm działa. Mam w jakimś tam pakiecie, w bibliotece, klasę abstrakcyjną, którą to ma załadowana klasa rozszerzać. Z tego co zaobserwowałem (niestety nie znalazłem dobrego materiału), klasa musi się znajdować w takim pakiecie, w jakim została stworzona (problem z class name). Chciałbym wczytywać klasy normalnie, podając wskazany plik, ścieżkę do niego. Jak mam to rozwiązać? Będę wdzięczny za pomoc.
@staszkox, dokładnie, tyko jeżeli klasa zostanie skompilowana w pakiecie xx.x, to abym mógł ją załadować w swoim programie, muszę ją wrzucić dokładnie w to samo miejsce, bo inaczej class name/path się nie będzie zgadzał.
Czyli jeżeli założymy, że klasy, będą ładowane w pakiecie xx.x, to będzie trzeba otworzyć jara, i po prostu tę klasę tam wpakować...
Dodatkowo Windows nie pozwoli tego zrobić w trakcie działania programu.
Wolałbym przeznaczyć do tego jakiś folder, gdzie będą przechowywane te pluginy.
Przykład paterny w gimpie.

- Rejestracja:około 21 lat
- Ostatnio:prawie 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
- Nie używaj gołych plików class jako pluginów tylko jarów razem ze strukturą pakietów
- Nie używaj gołej refleksji tylko zamiast tego niech plugin ma jakis entry point implementujący twój interfejs
Plugin
oznaczony przez@Named
, a ty w swojej aplikacji użyjesz jakiegoś CDI (choćby i Springa) żeby przeskanować classpath i instancjonować pluginy.

- Rejestracja:około 21 lat
- Ostatnio:prawie 3 lata
- Lokalizacja:Space: the final frontier
- Postów:26433
Różnice? W twojej wersji upiszesz sie jak szalony dziwnego kodu, w mojej to będą 2 linijki.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.