Ist es möglich, zwei Gläser unterschiedlicher Version zu betreiben, aber läuft auf verschiedenen Thread auf einer einzigen JVM. Wenn ja, bitte führe mich in die richtige Richtung.Zwei verschiedene Versionen von Gläsern in separaten Threads in einer einzigen JVM
1
A
Antwort
5
Sicher, das ist sehr gut möglich - bei Verwendung mehrerer Instanzen ClassLoader. Das bedeutet: Wenn jeder Thread einen eigenen speziellen ClassLoader verwendet, könnten diese Threads mit "unterschiedlichen" Versionen der "gleichen" JAR-Datei arbeiten.
Aber ein Wort der Warnung: Dies ist wirklich ein fortgeschrittenes Thema, das Sie nicht in unbeschwerte kommen wollen! Wenn Sie wirklich daran interessiert sind, dorthin zu gehen, finden Sie weitere Informationen here.
Verwandte Themen
- 1. Wie testet man verschiedene Versionen von Gläsern?
- 2. Überwachung von Threads in JVM
- 3. Verschiedene Versionen der gleichen Bibliothek in JVM parallel laden
- 4. Kann ich zwei verschiedene Versionen einer Seite in CodeIgniter zwischenspeichern?
- 5. Knotenversionskonflikt | zwei verschiedene Versionen installiert
- 6. Zwei verschiedene Postgresql-Datenbanken in einer einzigen Datenbank zusammenführen
- 7. Ausführen jedes JUnit-Tests in einer separaten JVM in Eclipse?
- 8. Verwenden Sie verschiedene Versionen von DLL-Datei in einer App
- 9. Zwei verschiedene Webapplikationen JVM zu einer Einheit verschmelzen
- 10. Zwei verschiedene Rubin-Versionen ohne RVM
- 11. Designing einzigen API für zwei verschiedene Typen
- 12. Mutex oder Semaphore für zwei verschiedene Threads
- 13. Verknüpfung von zwei widersprüchlichen Versionen einer Bibliothek
- 14. pflegen zwei verschiedene Feder Boot-Versionen in einzelnen Maven Paket
- 15. Verschiedene Versionen von msvcrt in ctypes
- 16. Vergleichen Sie zwei verschiedene Listen mit einer einzigen Liste?
- 17. Verschiedene Python-Versionen in Centos
- 18. Verschiedene Versionen derselben Bibliothek in Flex mischen
- 19. Zwei Operationen in einer einzigen Umleitung
- 20. zwei Lambda-Ausdrücke in einer einzigen Abfrage
- 21. Warum enthält Boost zwei verschiedene Versionen von strong_typedef.hpp?
- 22. Derive zwei verschiedene Arrays aus einem einzigen Array in PHP
- 23. Erstellen Sie zwei verschiedene mtext in einem einzigen Programm
- 24. Senden von E-Mails in separaten Threads mit QueueUserWorkItem
- 25. Python select.überwachen Überwachungs-Sockets in separaten Threads
- 26. So laden Sie verschiedene Version von Caffe in einer einzigen Python-Datei
- 27. Verschiedene Versionen in transitive Abhängigkeiten in Gradle
- 28. Mongo db verschiedene Versionen
- 29. Verwenden von zwei Versionen einer Cocoapod-Abhängigkeit
- 30. JVM Fairness bei der Planung von Threads
Nein, die zuletzt geladene Klassendatei wird diejenige sein, die ausgeführt wird. So werden die Klassen in JVM geladen – NullPointerException
Sie können das haben, aber Sie müssen sich intensiv mit der Klassenladerhierarchie und den benutzerdefinierten Klassenlatern beschäftigen. –
Sie benötigen keinen separaten Thread, Sie benötigen nur zwei ClassLoader. Oder Sie können ein Tool wie 'jarjar' verwenden, um den verschiedenen Versionen unterschiedliche Paketnamen zu geben. Es könnte jedoch viel einfacher sein, zwei JVMs zu haben und nur eine JAR-Version pro JVM zu haben. –