跨Java进程共享对象

use*_*819 8 java ipc process processbuilder

我正在从主应用程序执行另一个JVM(java.exe).有没有办法与新创建的进程共享一个对象(相当大的对象)(在创建时或创建后).

someObject sO= new someObject();

//sO is populated

//Creating new process

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("java  -cp " + tempDir +  jarsInPath  + " " + appMain);
Run Code Online (Sandbox Code Playgroud)

现在我希望sO对象可用于proc对象表示的进程

ProcessBuilder是否为此提供了任何实用程序?

Gre*_*zky 0

不,Java 中不支持共享内存。

解决这个问题的最简单方法是将对象序列化到临时文件中,然后在新的 JVM 中将其反序列化。