Ausführen mehrerer JVMs

8

Wie führen Sie mehrere JVMs auf einem einzelnen Computer aus? Wie rufen Sie Methoden in einer anderen JVM auf?

    
giri 08.01.2010, 19:48
quelle

9 Antworten

17
  

Wie führen Sie mehrere JVMs auf einem einzelnen Computer aus?

Starten Sie einfach mehrere java Prozesse.

  

Wie rufen Sie Methoden in einer anderen JVM auf?

Verwenden Sie eine beliebige Art von RPC-Framework (RMI, EJB, Webservice usw.).

    
Pascal Thivent 08.01.2010, 19:52
quelle
7

Hey, ich denke, du könntest verwirrt sein, wie man JVM laufen lässt. Jede Ausführung von java.exe oder javaw.exe erstellt eine neue Instanz von JVM für Sie. Wenn Sie zwei Programme mit zwei java.exe-Befehlen ausführen, haben Sie zwei JVMs, auf denen

ausgeführt wird     
scienty 08.01.2010 19:54
quelle
3

Ja, Sie können mehrere VMs auf demselben Computer ausführen. Sie müssen nur angeben, welche ausgeführt werden soll.

Wenn Sie sagen, dass Sie Methoden aufrufen möchten, die auf verschiedenen JVMs laufen, meinen Sie, dass sie miteinander reden? Wenn ja, schauen Sie sich Remote Method Invocation (RMI) an.

    
TofuBeer 08.01.2010 19:51
quelle
3

Es klingt so, als würden Sie über unterschiedliche Methoden innerhalb einer einzelnen Anwendung sprechen, die unter verschiedenen JVMs ausgeführt werden. Dies ist nicht möglich.

Wenn Sie für verschiedene Anwendungen unterschiedliche JVMs verwenden möchten, müssen Sie beim Starten einer App den Pfad zu der jeweiligen JRE manuell angeben. Beispiel:

%Vor%     
Jason Nichols 08.01.2010 19:54
quelle
3

Sie können so viele jvm haben, wie Sie auf einem einzigen Rechner ausführen können, da jede java.exe oder javaw.exe einen neuen jvm -Start hat.

und in Bezug auf den Aufruf einer Methode können Sie RMI verwenden.

    
GuruKulki 08.01.2010 20:59
quelle
1

Das macht keinen Sinn.

  1. Es ist einfach, verschiedene JVMs zu installieren, installieren Sie einfach die verschiedenen JREs, JDKs usw.

  2. Um den anderen Befehl auszuführen, verwenden Sie bei jeder Installation den richtigen Java-Befehl. Viele Projekte verwenden für diese Einstellung JAVA_HOME.

  3. Wenn Sie über mehrere JVMs in einem Browser für Applets sprechen, kann ich Ihnen nicht helfen.

Will Hartung 08.01.2010 19:51
quelle
1

Sie können mehrere Java-Programme auf demselben Computer starten (zum Beispiel ist Eclipse ein Java-Programm, das Ihr Programm starten kann), aber es gibt keine einfache Kommunikation zwischen verschiedenen JVMs.

RMI ist der Mechanismus, den Sun zur Verfügung stellt, um die Kommunikation zwischen JVMs auf verschiedenen oder der gleichen Maschine zu ermöglichen, aber es ist nicht trivial, um korrekt zu arbeiten und ist nicht als De-facto-Weg dazu aufgetaucht. Eine wichtige Funktion ist, dass Objekte auch dann zwischen JVMs verschoben werden können, wenn die entsprechenden Klassen in der Ziel-JVM nicht vorhanden sind.

Ссылка

Andernfalls können Sie Grid-Software, Terracotta oder einen Remoteprozeduraufruf-Mechanismus in Erwägung ziehen. Diese basieren normalerweise auf TCP / IP. Vielleicht möchten Sie Ihre Frage bearbeiten, um zu beschreiben, was Sie erreichen möchten, um eine Idee zu bekommen, wie Sie dorthin gelangen.

    
quelle
1

Wie führen Sie mehrere JVMs auf einem einzelnen Computer aus? Wie rufen Sie Methoden in einer anderen JVM auf?

RMI ist, wie dies im Allgemeinen getan wird. Ich möchte auch dasselbe machen, aber ohne RMI. Einfacher Weg, um die 1,5-g-Obergrenze bei 32-Bit-JVMs zu überwinden, die unter Windows die einzigen sind, die Videos abspielen können (JMF + Fobs, VLCJ, GStreamer schlagen alle mit Oracles 64bit JVM fehl, Harmony ist noch nicht fertig t hübsch). Das Video könnte in einer anderen JVM laufen und die Objekte wahrscheinlich über einige JNI teilen.

    
RubyNuby 25.04.2011 21:02
quelle
0

Es gibt mehrere aufschlussreiche Antworten hier, aber etwas, das mich interessiert, die treibende Voraussetzung für das Ausführen mehrerer JVMs. Warum glauben Sie, dass Sie das tun müssen? Wenn Sie nach einer Parallelverarbeitung suchen, sollten Sie eine Multithread-Anwendung im Gegensatz zu mehreren JVMs in Betracht ziehen. Da jede JVM sehr wahrscheinlich erhebliche Ressourcen benötigt und Sie eine Kommunikation zwischen den Ausführungswegen wünschen, ist dies wahrscheinlich eine bessere Lösung für Ihre Anforderungen.

    
ptsw 09.01.2010 19:00
quelle

Tags und Links