我想用Java代码在浏览器上打开链接或URL

我想用Java代码在浏览器上打开链接或URL,java,amazon-web-services,url,amazon-s3,hyperlink,Java,Amazon Web Services,Url,Amazon S3,Hyperlink,我有一个URL(如:“”),它应该在运行时从Java代码在浏览器(运行我的应用程序的同一浏览器)上打开 搜索了很多东西,找到了下面的java代码,但它不适合我 Desktop desktop = java.awt.Desktop.getDesktop(); URI uri = new URI(String.valueOf("My_Url")); desktop.browse(uri); 当使用上面的代码时,我得到了下面的异常 java.awt.HeadlessException at

我有一个URL(如:“”),它应该在运行时从Java代码在浏览器(运行我的应用程序的同一浏览器)上打开

搜索了很多东西,找到了下面的java代码,但它不适合我

Desktop desktop = java.awt.Desktop.getDesktop();
URI uri = new URI(String.valueOf("My_Url"));
desktop.browse(uri);
当使用上面的代码时,我得到了下面的异常

java.awt.HeadlessException
    at java.awt.Desktop.getDesktop(Desktop.java:142)
此外,我还添加并尝试了以下代码行,其中包含静态块和不包含静态块,并获得了相同的异常。请建议

System.setProperty("java.awt.headless", "true");
使用ProcessBuilder

    List<String> list = new ArrayList<String>(); 
    list.add("start"); 
    list.add("www.google.com");
    ProcessBuilder build = new ProcessBuilder(list);
    build.start();
List List=new ArrayList();
列表。添加(“开始”);
list.add(“www.google.com”);
ProcessBuilder build=新的ProcessBuilder(列表);
build.start();

也许这样行吗

String url = "http://www.google.co.in";

        if(Desktop.isDesktopSupported()){
            Desktop desktop = Desktop.getDesktop();
            try {
                desktop.browse(new URI(url));
            } catch (IOException | URISyntaxException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }else{
            Runtime runtime = Runtime.getRuntime();
            try {
                runtime.exec("xdg-open " + url);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

您可以使用Selenium Web驱动程序在浏览器中打开网站。 单击此处查看web驱动程序设置


尝试此桌面。如果运行它的系统是无头的,则getDesktop()会抛出HeadlessException,因为此类系统上没有可用的桌面。您就是这样吗?@AUsername当我使用main方法中的以下代码时,它工作正常,但在我的spring boot应用程序中,它抛出了java.awt.HeadlessException异常Desktop Desktop=java.awt.Desktop.getDesktop()```请注意,
xdg open
仅在unix系统上工作,甚至不能在所有系统上工作。我通常选择
x-www-browser
,它承诺使用x-server在所有unix发行版下运行。第一个条件总是错误的,因为我使用的是spring boot应用程序,但在使用main方法时,它工作正常。SpringContainer有什么问题吗?下面的代码也可以从main方法中工作,但在我的SpringBoot应用程序中不起作用。Desktop Desktop=java.awt.Desktop.getDesktop();没有Selenium Web驱动程序,还有其他方法在浏览器中打开URL吗?下载Selenium依赖项以仅打开URL不是一种好的做法。
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class OpenSite
{
    public static void main(String[] args) throws Exception
    {
        WebDriver driver=new FirefoxDriver();
        // tries to open https://google.com
        driver.get("https://google.com");
    }
}