JxBrowserをオフにするには、JxBrowserを正しく終了する方法があります。
2643 ワード
一、問題の説明
JAVA FXでJxBrowserを使って起動してからホームページを開きますが、どうすればいいですか?この時、直接窓を閉めました。Javaプロセスはすぐに止まってはいけません。待っています。JxBrowserはまだ閉じていないからです。
二、解決方法
以下のコードを実行するとJxBrowserを閉じることができます。
JAVA FXでJxBrowserを使って起動してからホームページを開きますが、どうすればいいですか?この時、直接窓を閉めました。Javaプロセスはすぐに止まってはいけません。待っています。JxBrowserはまだ閉じていないからです。
二、解決方法
以下のコードを実行するとJxBrowserを閉じることができます。
new Thread(new Runnable() {
@Override
public void run() {
browser.dispose();
}
}).start();
公式の文章を参照することができます。https://jxbrowser.support.teamdev.com/support/solutions/articles/9000013069-lightweight-or-heavyweightそして適切に閉じます。public class Util {
public enum OS {
WINDOWS, LINUX, MAC, SOLARIS
}// Operating systems.
private static OS os = null;
private static final String OPERATING_SYSTEM = System.getProperty("os.name").toLowerCase();
public static OS getOS() {
if (os == null) {
if (OPERATING_SYSTEM.contains("win"))
os = OS.WINDOWS;
else if (OPERATING_SYSTEM.contains("nix") || OPERATING_SYSTEM.contains("nux") || OPERATING_SYSTEM.contains("aix")) {
os = OS.LINUX;
} else if (OPERATING_SYSTEM.contains("mac"))
os = OS.MAC;
else if (OPERATING_SYSTEM.contains("sunos"))
os = OS.SOLARIS;
}
return os;
}
public static boolean isWindows() {
return OPERATING_SYSTEM.contains("win");
}
public static boolean isLinux() {
return ( OPERATING_SYSTEM.contains("nix") || OPERATING_SYSTEM.contains("nux") || OPERATING_SYSTEM.contains("aix") );
}
public static boolean isMac() {
return OPERATING_SYSTEM.contains("mac");
}
public static boolean isSolaris() {
return OPERATING_SYSTEM.contains("sunos");
}
/**
* Exit Application
*
* @param code
*/
public static void exitApplication(int code) {
System.out.println("Dis All->" + Util.getOS());
switch (Util.getOS()) {
case WINDOWS:
new Thread(() -> {
//->dispose all the browsers
code....
System.exit(code);
}).start();
break;
case LINUX:
case MAC:
Platform.runLater(() -> {
//->dispose all the browsers
code.....
System.exit(code);
});
break;
default:
System.out.println("Can't dispose browser instance!!!");
break;
}
}
}