Nasz produkt to samodzielna aplikacja komputerowa OS X napisana w Javie. Dołączamy środowisko JRE do uruchomienia naszego oprogramowania.Jak wyłączyć mechanizm rozszerzenia Java
Zasady uruchamiania JRE wydają się umieszczać żadnych plików JAR w /usr/lib/java
, /Library/Java/Extensions
i ~/Library/Java/Extensions
na ścieżce klasy przed bibliotekami jawnie obejmują na ścieżce klasy.
Jeśli użytkownik ma jakiekolwiek pliki JAR w dowolnym folderze mechanizmu rozszerzenia Java, to te pliki JAR zostaną dodane do naszej ścieżki klas. Niedawny incydent pomocy technicznej pojawił się, ponieważ klient miał starszą wersję krytycznej biblioteki firm trzecich w /usr/lib/java
- to powodowało nieoczekiwane awarie oprogramowania podczas uruchamiania.
Nie potrafiłem określić, w jaki sposób mogę wyłączyć ten mechanizm rozszerzenia podczas wywoływania środowiska JRE osadzonego w naszej aplikacji. Jak mogę to zrobić?
─────────
UWAGA: wydaje się, że ten mechanizm rozszerzenie jest przestarzała i ostatecznie zostaną usunięte: https://blogs.oracle.com/java-platform-group/entry/planning_safe_removal_of_under)
myślę, że można określić -Djava.ext.dir zwrócić się do bezpiecznego miejsca. Nie jestem pewien, czy działa to z programem uruchamiającym Maca, działało w systemie Windows. – eckes
Masz na myśli pakowanie osadzonego środowiska JRE w ** swoim ** własnym pliku JAR? W jaki sposób pakujesz/dołączasz osadzone środowisko JRE? –
Nie mam pełnej odpowiedzi. Pierwszą rzeczą, która przychodzi mi do głowy, jest modyfikowanie zasad bezpieczeństwa JRE. Klasy będą ładowane kilkoma wywołaniami metody loadClass, zachowanie ładowania zależy od zasad bezpieczeństwa. –