2017-09-08 3 views
0

ist es möglich, eine Sache zu tun, so wie einige statischen Daten in einem Java-Prozess von einem anderen zu bekommen:aus einem anderen Prozess statisches Objekt in Runtime initialisiert Get in Java

Ich habe 2 Java-Anwendungen.

Anwendung 1

public static String hello; 

public static void string main(String[] args) { 
    hello = "hello"; 
} 

Anwendung 2

public static void string main(String[] args) { 
    String hello = someHowTakeInitializedHelloPropertyFromApplication1() 
} 

Antwort

1

Sie keine Objekte in den Speicherraum eines anderen Prozesses läuft eine JVM zugreifen können. Wenn Sie auf Daten aus einem anderen Prozess zugreifen müssen, müssen Sie die Klasse, die diese Daten darstellt, serialisierbar machen und im anderen Prozess eine API bereitstellen, um serialisierte Objekte für andere Prozesse verfügbar zu machen.

This Q&A erörtert Optionen für die gemeinsame Nutzung von Informationen über JVMs. Wenn eine sehr kleine Menge an Informationen geteilt werden muss, ist die Codierung einer verwalteten Bean unter Verwendung von Java Management Extensions eine sinnvolle Option.

+0

Ja, das Problem, dass ich das Objekt von einem anderen Prozess lesen möchte, der nicht serialisierbar ist, und ich kann die Implementierung dieses Objekts nicht ändern. Warum ich versuche, diese verrückten Dinge zu tun, weil ein Prozess die Liste der Objekte instanziiert, die Informationen aus JAR-Dateien durch Reflexion nehmen. Der zweite Prozess wird häufig gestartet, führt aber den gleichen Vorgang beim Laden von Informationen aus. (Ist nur die Frage der Optimierung) Gut, wenn es möglich ist Dinge, die ich gerade laden Methode Verfahren im zweiten Prozess ersetzen kann, was bereits instanziierten Objekte aus einem anderen Prozess laden kann. – EVO

Verwandte Themen