3

指定されたURLでブラウザを起動するために使用される静的メソッドがあります。ブラウザがすでに開いている場合、これはアクティブなブラウザウィンドウを引き継ぎます。

これは、ブラウザがデータ入力などの他の目的で使用されている場合に問題になります。新しいブラウザウィンドウ(またはタブ)でURLを開く方法はありますか?

public static void openURL(String urlText)
{
    if (Desktop.isDesktopSupported())
    {
        URI uri = URI.create(urlText);
        try
        {
            Desktop.getDesktop().browse(uri);
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

あるいは、これを行うためのより良い方法はありますか?

4

5 に答える 5

2

BrowserLaunch2を見てください。特に、新しいウィンドウを強制的に開くためのこのメソッド。

于 2009-04-01T20:39:02.773 に答える
1

起動コードではなく、ブラウザでこれを設定する必要がある可能性があります。必要な動作を引き起こすいくつかの起動フラグを見つけることができるかもしれませんが、その過程でコードを特定のブラウザーに結び付けることになります。

于 2009-04-01T18:42:33.507 に答える
1

Yoseメソッドを使用して、デフォルトのブラウザーを識別し、次のコマンドを使用できます。

firefox.exe -new-tab ie7 http://blogs.msdn.com/tonyschr/archive/2007/01/19/ie-automation-amp-tabs.aspx opera -newpage

一部のブラウザはタブをサポートしていないか、タブでURLを開くためのコマンドラインパラメータがないことに注意してください。その場合、AHKスクリプトエンジンを使用できます。

于 2009-04-02T08:20:41.900 に答える
0

Windowsでは、デフォルトのブラウザが何であるかを見つける方法があります。コマンドを使用する必要があります

REG QUERY HKCR\.html /ve

戻るだろう

! REG.EXE VERSION 3.0

HKEY_CLASSES_ROOT\.html
    <NO NAME>   REG_SZ  FirefoxHTML

次に、同じコマンドを使用してFirefoxHTML(または返された値)をクエリし、キーに次を追加します

REG QUERY HKCR\FirefoxHTML\shell\open\command /ve

そしてこれは戻るだろう

! REG.EXE VERSION 3.0

HKEY_CLASSES_ROOT\FirefoxHTML\shell\open\command
    <NO NAME>   REG_SZ  "C:\Program Files\Mozilla Firefox\firefox.exe" -requestPending -osint -url "%1"

ここから、返された行を解析して、ブラウザの実行可能ファイルの場所を取得できます。

これはすべて、Javaランタイムクラスを使用して実行できます。

Runtime.getRuntime.exec(cmdString);

これには多くのカスタマイズされたコーディングが必要ですが、基本的には、Windowsでデフォルトのブラウザーにアクセスするための独自のAPIを作成できます。

これは、JavaでWindowsレジストリにアクセスする例です。

レジストリでデフォルトのブラウザを見つける方法の詳細については、Googleで検索することもできます。

他のプラットフォーム(Mac、Linuxなど)に関しては、デフォルトのブラウザへのパスを取得する特定の方法があると確信しています。

お役に立てれば!

于 2009-04-01T18:40:09.470 に答える
0

java.awt.Desktop API はこのレベルの機能を提供していないようです。

これは、2006 年に質問があったjava.net フォーラムへのリンクです。

そこでの応答は、JDIC の WebBrowserに言及していました。

于 2009-04-01T22:18:11.397 に答える