Stellen Sie Alternativen zu JRebel erneut bereit [closed]

Lesezeit: 6 Minuten

Benutzer-Avatar
Jay

JRebel ermöglicht die erneute Bereitstellung von neu kompiliertem Code ohne Neustart der Anwendung. Ich frage mich, ob es eine Alternative gibt (kostenlos?). Das FAQ Seite beantwortet diese Frage, aber ich bin mir sicher, dass sie auf JRebel ausgerichtet ist. Diese Frage wurde vor einem Jahr auf dieser Seite gestellt, aber ich bringe sie wieder hoch, um zu sehen, ob jemand neue Informationen hat.

Nebenbei bemerkt, ich mag JRebel wirklich, aber wenn es eine kostenlose Alternative gibt, bin ich bereit, es zu versuchen.

Eine zusätzliche Anmerkung: Ich arbeite an einem Open-Source-Projekt, und sie bieten Personen, die nachweisen können, dass sie an einem Open-Source-Projekt teilnehmen, kostenlose einjährige Lizenzen an. Was für mich großartig funktioniert (www.kuali.org), aber ich werde nicht ewig an diesem Projekt bleiben.

  • Gute Frage. Wir haben auch nach einer Alternative zu JRebel gesucht, da deren Verkaufsabteilung extrem invasiv ist. Wir haben keine Probleme, für ein Produkt wie JRebel zu bezahlen, aber nicht, wenn sie unsere Entwickler und unsere IT-Abteilung rund um die Uhr belästigen.

    – neu242

    9. Dezember 2013 um 11:34 Uhr


  • Eine Alternative zu jRebel gibt es vom eigenen ZeroTurnAround: die kostenlose Version von Jrebel zu Opensource-Projekten und Study Case… my.jrebel.com

    – dellasavia

    23. November 2015 um 12:42 Uhr


  • Ich weiß, es ist eine späte Antwort, Sie können einen Blick darauf werfen Federbelastet – , ein JVM-Agent zum erneuten Laden von Klassendateiänderungen, während eine JVM ausgeführt wird. Es transformiert Klassen zur Ladezeit, um sie für ein späteres Neuladen zugänglich zu machen. Im Gegensatz zu „Hot Code Replace“, das nur einfache Änderungen zulässt, sobald eine JVM ausgeführt wird (z. B. Änderungen an Methodenkörpern), ermöglicht Spring Loaded das Hinzufügen/Ändern/Löschen von Methoden/Feldern/Konstruktoren und mehr …

    – Einfach-Lösung

    24. Juli 2016 um 16:42 Uhr

  • Eclipse-Debugger – ersetzt Ihren Live-Code sofort.

    – Benutzer1050755

    1. September 2017 um 21:05 Uhr


  • Versuchen Sie, dies auf der Schwesterseite zu posten, Software-Empfehlungs-Stack-Austausch.

    – Basilikum Bourque

    2. November 2018 um 19:39 Uhr

Benutzer-Avatar
Emmanuel Burg

Schauen Sie sich an DCEVM, es ist eine Modifikation der HotSpot-VM, die unbegrenzte Neudefinitionen von Klassen zur Laufzeit ermöglicht. Sie können Felder und Methoden hinzufügen/entfernen und die Supertypen einer Klasse zur Laufzeit ändern.

Die auf der Originalseite verfügbaren Binärdateien sind auf Java 6u25 und auf frühe Versionen von Java 7 beschränkt. Das Projekt wurde gegabelt GitHub und unterstützt aktuelle Versionen von Java 7 und 8. Der Betreuer stellt Binärdateien für 32/64-Bit-VMs unter Windows/Linux bereit. Beginnend mit Java 11 wurde das Projekt in ein neues verschoben GitHub -Repository und stellt jetzt auch Binärdateien für OS X bereit.

DCEVM ist für Debian und Ubuntu gepackt, es ist bequem in OpenJDK integriert und kann damit aufgerufen werden java -dcevm. Der Name des Pakets hängt von der Version des Standard-JDK ab:

  • Es funktioniert gut, ich fand es schneller und verbraucht weniger Speicher als JRebel. Die einzige Einschränkung besteht darin, sich an Java 6u25 zu halten.

    – Emmanuel Burg

    26. Januar 2012 um 10:37 Uhr

  • Vielen Dank. Ich habe den ganzen Tag ruiniert, als ich versucht habe, jRebel dazu zu bringen, wie gewünscht zu arbeiten. DCEVM kam zur Rettung.

    – alehro

    7. November 2012 um 16:39 Uhr

  • Hier sind vollständige Build- und Installationsanweisungen für DCEVM auf JDK 7u45 und MacOSX: neu242.livejournal.com/52962.html

    – neu242

    9. Dezember 2013 um 12:21 Uhr


  • JEP 159 ist nicht Teil von JDK 8. Es wurde möglicherweise auf JDK 9 verschoben, aber noch keine Bestätigung.

    – Krish Prabakar

    22. Dezember 2013 um 15:44 Uhr

  • Hier finden Sie einige vollständige JVM 1.7-Binärdateien: dcevm.nentjes.com Sie müssen Ihre JVM also nicht patchen. Ich habe Win64 ausprobiert und es hat bei mir super funktioniert. Ich habe auch hier darüber gebloggt, falls du mehr Details brauchst: javainformed.blogspot.com/2014/01/jrebel-free-alternative.html

    – dnang

    18. Januar 2014 um 19:51 Uhr

Hotswap-Agent ist eine Erweiterung zu DCEVM, die viele Java-Frameworks unterstützt (Reload Spring Bean Definition, Hibernate Entity Mapping, Logger Level Setup, …).

Es gibt auch viele Dokumentationen zum Einrichten von DCEVM und kompilierten Binärdateien für Java 1.7.

  • Sie haben jetzt eine eigene Website: www.hotswapagent.org. Das Projekt ist recht neu, scheint aber recht gut zu funktionieren.

    – Didier L

    7. März 2014 um 13:14 Uhr

  • Ich habe dieses Tutorial befolgt, um es nach der Installation in Eclipse zu integrieren: tirthalpatel.blogspot.fr/2014/06/… es wirkt wie ein Zauber

    – jpprade

    9. Dezember 2014 um 9:56 Uhr


  • @edudant Müssen wir nach der Installation von „Hotswap-Agent“ DCEVM installieren? Weil ich DCEVM mit “sudo apt install openjdk-11-jre-dcevm” in Ubuntu 19.04 und auch das Plugin in IntelliJ Ultimate 2019.1.3 installiert habe. Wenn Sie den ‘Hotswap-Agenten’ installieren, geschweige denn die Arbeit von JRebel erledigen, was nützt dann DCEVM!?

    Benutzer10995419

    8. August 2019 um 1:38 Uhr

  • DCEVM kann Hotswap jetzt sofort ausführen, ohne dass Hotswap Agent installiert werden muss.

    – rostig

    17. November 2020 um 13:11 Uhr

  • Warnung, Hotswapent selbst, verbessert das Neuladen von Klassen nicht. im jvm. Es überwacht nur den Klassenpfad, und wenn Sie es hier ändern, wird es neu geladen. Aber es gehorcht Einschränkungen des gegebenen JDK

    – Judovana

    16. Juli 2021 um 16:12 Uhr

Benutzer-Avatar
tak3shi

DCEVM unterstützt erweiterte Klassenneudefinitionen und ist für das aktuelle JDK7 und JDK8 verfügbar.

https://github.com/dcevm/dcevm/releases

HotswapAgent ist eine kostenlose JRebel-Alternative und unterstützt DCEVM in verschiedenen Frameworks.

http://hotswapagent.org/

Von den Spring-Jungs, die zum Nachladen von Grails verwendet werden, aber auch mit Java funktionieren:

https://github.com/SpringSource/spring-loaded

Benutzer-Avatar
Rafael Sanchen

Ich habe einen Artikel darüber geschrieben DCEVM: Spring-mvc + Geschwindigkeit + DCEVM

Ich denke, es lohnt sich, da meine Umgebung ohne Probleme läuft.

Benutzer-Avatar
Stuart Douglas

Ich habe an einem Open-Source-Projekt gearbeitet, mit dem Sie Klassen im laufenden Betrieb ersetzen können, was über das hinausgeht, was Hot Swap zulässt: https://github.com/fakereplace/fakereplace

Es kann für Sie funktionieren oder nicht, aber jedes Feedback wird geschätzt

Benutzer-Avatar
Alex

Vielleicht möchten Sie sich das ansehen:

HotSwap-Unterstützung: Die objektorientierte Architektur der Java HotSpot VM ermöglicht erweiterte Funktionen, wie z. B. die spontane Neudefinition von Klassen oder “HotSwap”. Diese Funktion bietet die Möglichkeit, geänderten Code in einer laufenden Anwendung über die Debugger-APIs zu ersetzen. HotSwap fügt der Java-Plattform-Debugger-Architektur Funktionalität hinzu, wodurch eine Klasse während der Ausführung aktualisiert werden kann unter der Kontrolle eines Debuggers. Es ermöglicht auch die Ausführung von Profiling-Operationen durch Hotswapping in Methodenversionen, in die Profiling-Code eingefügt wurde.

Im Moment ermöglicht dies nur die erneute Bereitstellung neu kompilierter Methodentexte ohne Neustart der Anwendung. Alles, was Sie tun müssen, ist, es mit einem Debugger auszuführen. Ich habe es in Eclipse ausprobiert und es funktioniert hervorragend.

Auch, wie Emmanuel Bourg in seiner Antwort erwähnte (JEP159), gibt es Hoffnung, Unterstützung für das Hinzufügen von Supertypen und das Hinzufügen und Entfernen von Methoden und Feldern zu haben.

Bezug:
Java-Whitepaper 135217: Zuverlässigkeit, Verfügbarkeit und Wartungsfreundlichkeit

1352570cookie-checkStellen Sie Alternativen zu JRebel erneut bereit [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy