2017-01-09 2 views

Antwort

2

Standardmäßig initialisiert JxBrowser auf MacOS die Chromium-Engine im Java-Prozess. Es ist erforderlich, den Schwergewichts-Rendermodus zu unterstützen, wenn das Chromium-Fenster in den Java-Frame eingebettet ist. In Mac OS kann natives Fenster von einem Prozess (Chromium) nicht in ein natives Fenster von einem anderen Prozess (Java) eingebettet werden.

Das Initialisieren von Chromium in Java kann zu Deadlock-Problemen unter MacOS führen. Das liegt daran, dass SWT, JavaFX und Chrom den gleichen nativen Cocoa-Thread im Java-Prozess verwenden.

Die VM-Option java.ipc.external=true weist JxBrowser an, die Chromium-Engine in einem separaten nativen Prozess zu initialisieren und auszuführen. In diesem Fall teilen Java und Chromium den nativen Cocoa-Thread nicht. Es ermöglicht das Lösen von Deadlock-Problemen auf der macOS-Plattform.

Wie Sie vielleicht sehen, kann in diesem Fall der Schwergewichts-Rendering-Modus nicht verwendet werden. In diesem Fall wird also nur der Lightweight-Rendering-Modus verwendet. Dies ist der einzige Nachteil der Verwendung dieser VM-Option.

+0

Danke, es ist eine sehr hilfreiche Antwort. Haben Sie andere VM Args dokumentiert ?. Ich würde sie mir gerne ansehen. Vielen Dank. –

+0

Es gibt keine einzige Webseite Wir listen alle unterstützten JxBrowser VM-Argumente auf. Ich denke, wir sollten ähnliche wep-Seite in Zukunft hinzufügen. Im Moment sind Informationen zu allen unterstützten VM-Argumenten in der JxBrowser-Dokumentation unter https://jxbrowser.support.teamdev.com/support/solutions verstreut – Vladimir