如果链接已经从java打开,请打开相同的浏览器选项卡

如果链接已经从java打开,请打开相同的浏览器选项卡,java,Java,我试图在默认浏览器中从JAVA代码打开URL。下面是我的代码 Desktop desktop = Desktop.getDesktop(); if(desktop != null){ try { desktop.browse(URI.create(Url)); } catch (IOException err) { err.printStackTrace(); } } 但每次它都会打开新

我试图在默认浏览器中从JAVA代码打开URL。下面是我的代码

 Desktop desktop = Desktop.getDesktop();
 if(desktop != null){
        try {
            desktop.browse(URI.create(Url));
        } catch (IOException err) {
            err.printStackTrace();
        }
    }

但每次它都会打开新标签,即使是同一个URL。我有没有办法限制这一点。如果URI已经打开,它应该打开相同的选项卡。如何做到这一点

API中没有比“启动默认浏览器并浏览到给定URL”更细粒度的控件了

来自API的请求将发送到本机桌面/窗口管理器,由于“默认浏览器”可以是几十个程序中的任意一个(甚至不存在),因此,如果现有选项卡/窗口已包含给定URL,则没有常规方法通知浏览器要匹配该选项卡/窗口

对于通过进程间通信提供此类API的特定浏览器,您可能能够实现这一点,但这将是非常平台和特定于浏览器的


您还可以使用用户界面测试工具进行调查。一个可能的例子是Selenium,但还有很多其他的例子。

但我认为,如果您对每个“URL”都这样做,那么这种方法可能并不合适。由于可能有一个sceanrio,您需要在两个不同的选项卡中打开同一应用程序的不同屏幕。例如,在登录屏幕中,如果在登录后输入登录URL,您将按照指示重定向到默认URL。因此,您可以告诉我您试图接近此逻辑的场景吗?@srikanthr我正在尝试加载手动页面对于我在浏览器中的应用程序,如果已经打开,我不想在新浏览器中打开。谢谢您的反馈。但它不会是特定于浏览器的,但我正在使用默认浏览器打开此URL,它可以是任何内容。另外,当你说使用UI测试工具时,我没有理解你的意思。我在java桌面应用程序中使用上述代码。