我在玩JDK9的JShell API。有沒有另外一種方法來啓動遠程jvm?
目前,JShell API在內部自動啓動遠程JVM。我不想自動啓動該過程,而是要分開這兩個過程。
注意:我知道我可以更改VM選項。但我想看看虛擬機是否可以在不同的機器上運行。
默認執行控制最終爲reaches this place in code。
如果我指定啓動,它會自動使用com.sun.jdi.CommandLineLaunch
連接器,它實際上按照定義啓動java程序。 如果我指定不啓動,它會像我所期望的那樣使用com.sun.jdi.SocketListen
,一旦它啓動服務器套接字,它會自動starts a remote vm and connects to this socket。我認爲這是意想不到的。
其他的事情我試過,
Shell jshell = JShell.builder()
.executionEngine("jdi:hostname(localhost),launch(false)")
.build();
jshell.eval("1+2");
我希望它可以失敗,或者被卡住,直到一個獨立的進程開始。
是否有替代方法來指定連接器或不啓動JVM? (我對「本地」不感興趣)
一些簡單的選項,例如能夠指定com.sun.jdi.RawCommandLineLaunch
作爲接受自定義命令或能夠使用套接字偵聽連接器並等待其他進程連接的連接器。
謝謝。