最近在做一個項目,是在debian的Linux環(huán)境下用Java開發(fā)的,因為系統(tǒng)沒有安裝圖形界面,于是采用調(diào)用瀏覽器顯示特定網(wǎng)頁來實現(xiàn)的方案。
為石峰等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及石峰網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站設計、網(wǎng)站制作、石峰網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
現(xiàn)在可以找到的java調(diào)用linux瀏覽器的方法主要有3種,
第一種是調(diào)用桌面默認瀏覽器的辦法,如下所示:
[java] view plain copy
public static void openURL(String sURL) {
try {
URI uri = new URI(sURL);
Desktop desktop = null;
if (Desktop.isDesktopSupported()) {
desktop = Desktop.getDesktop();
}
if (desktop != null)
desktop.browse(uri);
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (URISyntaxException e){
e.printStackTrace();
}
}
第二種是runtime的辦法,如下:
[java] view plain copy
public static void openURLRuntime(String url) {
try {
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);
} catch (Exception ex) {
//ex.printStackTrace();
}
}
第三種和第二種差不多,但是可以先判斷瀏覽器的類型,如下:
[java] view plain copy
private static void openURLlinux(String url) throws Exception {
//獲取操作系統(tǒng)的名字
String osName = System.getProperty("os.name", "");
String[] browsers = { "google-chrome","firefox", "opera", "konqueror", "epiphany", "mozilla", "netscape" };
String browser = null;
for (int count = 0; count browsers.length browser == null; count++){
System.out.print( "find:"+count+"\n");
//執(zhí)行代碼,在brower有值后跳出
//這里是如果進程創(chuàng)建成功了,==0是表示正常結束。
if (Runtime.getRuntime().exec(new String[] {
"which", browsers[count] }).waitFor() == 0){
browser = browsers[count];
System.out.print( "find browser:"+browser+"\n");
}
if (browser == null)
System.out.print( "Could not find web browser");
else
//這個值在上面已經(jīng)成功的得到了一個進程。
Runtime.getRuntime().exec(new String[] {browser, url});
}
}
不過,可惜的是上邊三種方法都沒有成功調(diào)出瀏覽器,雖然我在ubuntu上的測試沒問題,但是在那個debian上一直不行,于是就想辦法,后來找到一個辦法,實現(xiàn)調(diào)出瀏覽器的功能,代碼如下:
[java] view plain copy
String openChrome="curl "; //調(diào)用瀏覽器
Runtime.getRuntime().exec(openChrome);
這個辦法可以啟動chrome瀏覽器,但是無法打開特定的網(wǎng)址,于是就采用了一個神一樣的辦法,設置chrome的默認首頁,這樣打開瀏覽器就是那個頁面,當然這個辦法比較弱智,但還是實現(xiàn)功能了。所以在這里分享一下,供大家參考。
程序設定。在編程軟件linux中編輯的命令行打開火狐瀏覽器并跳轉(zhuǎn)到想訪問的地址是可以通過編輯程序設定實現(xiàn)的。Linux,全稱GNULinux,是一種免費使用和自由傳播的類UNIX操作系統(tǒng)。
如果安裝firefox游覽器了,直接執(zhí)行firefox 就可以,找到命令行下可以直接輸入 firefox 即可。
安裝Fox瀏覽器的過程如下,在CentOS上的火狐瀏覽其中,打開火狐社區(qū)的:
頁面,點擊’我要安裝‘即可為火狐瀏覽器安裝該插件。
接下來全都點同意,并安裝:
安裝完畢后,在瀏覽器中按下’Ctrl+Shift+F2‘即可打開HttpFox。界面如下:
準備好以后,點擊Start,抓包就開始了。然后可以在左下角的各個標簽下查詢自己需要的數(shù)據(jù)。
HttpFox監(jiān)視并且分析所有進出瀏覽器的HTTP網(wǎng)絡傳輸,HttpFox更專注于對于網(wǎng)站工程師而言很受青睞。如果熟悉網(wǎng)絡監(jiān)控類軟件的話,使用HttpFox不會有任何的困難,即便您不熟悉,參照上述過程也可以很快的上手。
Linux下的命令行瀏覽器是Lynx和w3m。其中我使用的是Lynx。
可以以lynx filename和lynx PROTOCOL://HOST/PATH/FILENAME的形式運行Lynx,其中前一種用于瀏覽本地文件,后一種用于瀏覽Internet。協(xié)議(PROTOCOL),可以是http, gopher, ftp和wais。