2012-01-11 10 views
2

現在、私は例えばurlでウェブサイトを持っています。言う:http://mydomain/index.jspと私はFirefoxのブラウザ&のサイトを開いた私のデフォルトのブラウザはGoogleのクロムです。現在の作業ブラウザから新しいURLを開きます。

Javaでは、現在のブラウザ(私のウェブサイトが開かれているFirefox)で新しいURLを開く必要があります。私が使用しようとしたとき:

Desktop desktop = java.awt.Desktop.getDesktop(); 
URI uri = new java.net.URI(my_new-uRL); 
desktop.browse(uri); 

新しいURLはchromeで(私のデフォルトのブラウザ以来)開かれました。私はそう必要はありません。私はすべてのセッションがfirefoxで有効なので、同じFirefoxブラウザで新しいURLを開くためのコードが必要です。どうすればいいですか?

ありがとうございました。

+0

このコードを実行しようとしている場所はどこですか? –

答えて

1

以下は、要求された機能を容易にするアプリケーションのURLです。お役に立てれば。

http://browserlaunch2.sourceforge.net/docs.shtml#defbrowserfromsysprop

+0

こんにちは..お返事ありがとうございます。私はそのようなブラウザの選択肢は必要ありません。私は現在、ユーザーが使用しているブラウザーを見つけ、新しいURLを開くためにそのブラウザーを自動的に作成する方法(コード)が必要です。再度、感謝します。それのための方法はありますか? – user1045277

+0

いくつかのオプションをチェックしてみましょう。私が何かに出くわしたときに私はあなたに知らせるでしょう。 – Kakarot

2

唯一の方法は、引数としてURLでFirefoxを起動するコマンドを実行することであるようです。コマンドを実行する最も簡単な方法は、のRuntime.exec()メソッドの1つを使用している:

String[] args = new String[] { "full/path/to/firefox.exe or linux binary", "your-new-url" }; 
Runtime.getRuntime().exec(args); 

(私は、EXEC()オーバーロードされたバリアントの詳細については、APIドキュメントを参照し、またFirefox用CMD引数の形式を確認してください。

このアプローチの明らかな欠点は、Firefoxにハードコードされたパスを使用することです。おそらく、あなたの場合は問題ではないでしょう。

UPDATE

OK。言い換えれば、まず第一に、現在実行中のアプリケーションのリストを何らかの形でロードする必要があります。率直に言って、私はJavaで簡単にはできないと思います。 OSによって異なります。最初のアイデアとして、Linuxでは、「トップ」や「ps」のようなものを実行し、実行中のアプリケーションを見るために出力を分析することができます。 Windowsでは、Win APIをタスク用に使用するネイティブコード(C/C++)を呼び出す必要があります(btw、セキュリティ上の理由により制限される可能性があります)。

+0

こんにちは..お返事ありがとうございます。私はFirefoxのためだけにこれを必要としません。私は、ユーザーが現在使用しているブラウザーを見つけて、新しいURLを開くために自動的に同じブラウザーを作成する方法(コード)をJavaで必要とします(これはfirfox、IEまたはChromeなどです)。再度、感謝します。それのための方法はありますか? – user1045277

0

これはかなり古いトピックですが、私の仕事ではこの要件を満たしています。解決策を共有すると思いました。

まず、ユーザーが使用しているOSとブラウザを特定する必要があります。ここではかなり良い説明があり、ブラウザを見つけるための

String osName = System.getProperty("os.name"); 
String osVersion = System.getProperty("os.version"); 

:あなたが使用できるOSについては http://www.rgagnon.com/javadetails/java-detect-browser-type-from-an-applet.html

私がやったことは、私のJavaコードでこれを追加しました:

String browser = (String)win.eval("getUserAgent();") 

およびアプレットを配備HTMLで:

<head> 
    <script> 
    function getUserAgent() { 
    return navigator.userAgent; 
    } 
    </script> 
ヘッド部には、アプレットタグは
<applet ... MAYSCRIPT height=100 

の高さの前に表示されます。 (プラグインも追加しました。jaをクラスパスに適用)

OSとブラウザを特定し、それを処理するためにifを使う必要があります。 例えばLinuxやFirefox用:窓やFirefox用

String[] args = new String[] { "firefox", "http://www.google.com" }; 
Runtime.getRuntime().exec(args); 

String[] args = new String[] { "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe", "http://www.google.com" }; 
Runtime.getRuntime().exec(args); 

、あなたがIEのためにそれをしなければならない(クロームでJavaアプレットは、もはやサポートされていません) も、取り扱いますウィンドウ内のパスの例外...

関連する問題