क्या कोई मुझे सही दिशा में इंगित कर सकता है कि डिफ़ॉल्ट वेब ब्राउज़र कैसे खोलें और पृष्ठ को "www.example.com" धन्यवाद पर सेट करें
क्या कोई मुझे सही दिशा में इंगित कर सकता है कि डिफ़ॉल्ट वेब ब्राउज़र कैसे खोलें और पृष्ठ को "www.example.com" धन्यवाद पर सेट करें
जवाबों:
java.awt.Desktop
वह वर्ग है जिसकी आप तलाश कर रहे हैं।
import java.awt.Desktop;
import java.net.URI;
// ...
if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
Desktop.getDesktop().browse(new URI("http://www.example.com"));
}
Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)
इसके बजाय चेक का उपयोग करें।
यहाँ मेरा कोड है। यह डिफॉल्ट ब्राउज़र (क्रॉस प्लेटफॉर्म सॉल्यूशन) में दिया गया url खोलेगा।
import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
public class Browser {
public static void main(String[] args) {
String url = "http://www.google.com";
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();
}
}
}
}
मेरे लिए समाधान के साथ Desktop.isDesktopSupported()
काम नहीं करता है ( विंडोज़ 7 और ubuntu )। कृपया इसे जावा कोड से ब्राउज़र खोलने का प्रयास करें:
खिड़कियाँ:
Runtime rt = Runtime.getRuntime();
String url = "http://stackoverflow.com";
rt.exec("rundll32 url.dll,FileProtocolHandler " + url);
मैक
Runtime rt = Runtime.getRuntime();
String url = "http://stackoverflow.com";
rt.exec("open " + url);
लिनक्स:
Runtime rt = Runtime.getRuntime();
String url = "http://stackoverflow.com";
String[] browsers = { "epiphany", "firefox", "mozilla", "konqueror",
"netscape", "opera", "links", "lynx" };
StringBuffer cmd = new StringBuffer();
for (int i = 0; i < browsers.length; i++)
if(i == 0)
cmd.append(String.format( "%s \"%s\"", browsers[i], url));
else
cmd.append(String.format(" || %s \"%s\"", browsers[i], url));
// If the first didn't work, try the next browser and so on
rt.exec(new String[] { "sh", "-c", cmd.toString() });
यदि आप मल्टीप्लायर अनुप्रयोग करना चाहते हैं, तो आपको ऑपरेशन सिस्टम जाँच (उदाहरण के लिए) जोड़ने की आवश्यकता है:
String os = System.getProperty("os.name").toLowerCase();
खिड़कियाँ:
os.indexOf("win") >= 0
मैक:
os.indexOf("mac") >= 0
लिनक्स:
os.indexOf("nix") >=0 || os.indexOf("nux") >=0
xdg-open
इस मामले में उपयोग करना बेहतर है। समाधान इसलिए macOS एक के रूप में सरल हो सकता है।
आप क्रॉस प्लेटफॉर्म समाधान बनाने के लिए रनटाइम का उपयोग भी कर सकते हैं:
import java.awt.Desktop;
import java.net.URI;
public class App {
public static void main(String[] args) throws Exception {
String url = "http://stackoverflow.com";
if (Desktop.isDesktopSupported()) {
// Windows
Desktop.getDesktop().browse(new URI(url));
} else {
// Ubuntu
Runtime runtime = Runtime.getRuntime();
runtime.exec("/usr/bin/firefox -new-window " + url);
}
}
}
जैसा कि टिम कूपर द्वारा दिए गए जवाब में कहा गया है, java.awt.Desktop
यह क्षमता जावा संस्करण 6 (1.6) के बाद से प्रदान की गई है, लेकिन निम्नलिखित चेतावनी के साथ:
ऐसे प्लेटफ़ॉर्म जो समर्थन या प्रदान नहीं करते हैं java.awt.Desktop
, BrowserLauncher2 प्रोजेक्ट में देखें। यह एरिक अल्बर्ट द्वारा मूल रूप से लिखे और जारी किए गए BrowserLauncher वर्ग से प्राप्त और कुछ हद तक अपडेट किया गया है। मैंने मूल BrowserLauncher वर्ग का उपयोग बहु-प्लेटफ़ॉर्म जावा एप्लिकेशन में सफलतापूर्वक किया था जो 2000 के दशक की शुरुआत में एक वेब ब्राउज़र इंटरफ़ेस के साथ स्थानीय रूप से चलता था।
ध्यान दें कि BrowserLauncher2 को GNU लेसर जनरल पब्लिक लाइसेंस के तहत लाइसेंस प्राप्त है । यदि वह लाइसेंस अस्वीकार्य है, तो मूल BrowserLauncher की एक प्रति देखें, जिसमें एक बहुत ही उदार लाइसेंस है:
यह कोड एरिक अल्बर्ट (ejalbert@cs.stanford.edu) द्वारा 1999-2001 का कॉपीराइट है और प्रतिबंध के बिना किसी भी रूप में तब तक पुनर्वितरित या संशोधित किया जा सकता है, जब तक कि इस पैराग्राफ से टिप्पणी के अंत तक इस टिप्पणी के हिस्से को हटा नहीं दिया जाता। । लेखक अनुरोध करता है कि उसे किसी भी एप्लिकेशन, एप्लेट या अन्य बाइनरी के बारे में सूचित किया जाए जो इस कोड का उपयोग करता है, लेकिन यह किसी भी चीज़ से अधिक उत्सुकता से बाहर है और इसकी आवश्यकता नहीं है। इस सॉफ्टवेयर में कोई वारंटी शामिल नहीं है। लेखक डेटा या कार्यक्षमता के किसी भी नुकसान या इस सॉफ़्टवेयर का उपयोग करने के किसी भी प्रतिकूल या अप्रत्याशित प्रभावों के लिए पुन: प्रयोज्य नहीं है।
श्रेय: स्टीवन स्पेन्सर, जावावर्ल्ड पत्रिका (जावा टिप 66) रॉन बी येह, एरिक शापिरो, बेन एंगबर, पॉल टिटेलबौम, एंड्रिया कैंटोरो, लैरी ब्रॉवस्की, ट्रेवर बेडेक, फ्रैंक मिडरिक और रॉन रबाकुक को भी धन्यवाद
BrowserLauncher2 के अलावा अन्य परियोजनाओं ने भी मूल BrowserLauncher को ब्राउज़र में परिवर्तनों और डिफ़ॉल्ट सिस्टम सुरक्षा सेटिंग्स के लिए 2001 से अद्यतन किया हो सकता है।
इसका बहुत ही सरल कोड के नीचे लिखें:
String s = "http://www.google.com";
Desktop desktop = Desktop.getDesktop();
desktop.browse(URI.create(s));
या यदि आप URL लोड नहीं करना चाहते हैं, तो बस अपने ब्राउज़र का नाम स्ट्रिंग मानों में लिखें, जैसे,
String s = "chrome";
Desktop desktop = Desktop.getDesktop();
desktop.browse(URI.create(s));
यह प्रोग्राम को निष्पादित करने के बाद खाली URL के साथ स्वचालित रूप से ब्राउज़र खोलेगा
विंडोज़ पर "cmd / k start http://www.example.com " शुरू करें, वास्तव में आप प्रारंभ कमांड का उपयोग करके हमेशा "डिफ़ॉल्ट" कार्यक्रमों को लागू कर सकते हैं। Ex start abc.mp3 के लिए डिफ़ॉल्ट एमपी 3 प्लेयर को इनवॉइस करेगा और अनुरोधित एमपी 3 फ़ाइल को लोड करेगा।
आशा है कि आप बुरा न मानें, लेकिन मैंने ऊपर से सभी सहायक सामग्री को एक साथ सिल दिया, और परीक्षण के लिए पूरी तरह तैयार कक्षा के साथ आया ...
import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
public class MultiBrowPop {
public static void main(String[] args) {
OUT("\nWelcome to Multi Brow Pop.\nThis aims to popup a browsers in multiple operating systems.\nGood luck!\n");
String url = "http://www.birdfolk.co.uk/cricmob";
OUT("We're going to this page: "+ url);
String myOS = System.getProperty("os.name").toLowerCase();
OUT("(Your operating system is: "+ myOS +")\n");
try {
if(Desktop.isDesktopSupported()) { // Probably Windows
OUT(" -- Going with Desktop.browse ...");
Desktop desktop = Desktop.getDesktop();
desktop.browse(new URI(url));
} else { // Definitely Non-windows
Runtime runtime = Runtime.getRuntime();
if(myOS.contains("mac")) { // Apples
OUT(" -- Going on Apple with 'open'...");
runtime.exec("open " + url);
}
else if(myOS.contains("nix") || myOS.contains("nux")) { // Linux flavours
OUT(" -- Going on Linux with 'xdg-open'...");
runtime.exec("xdg-open " + url);
}
else
OUT("I was unable/unwilling to launch a browser in your OS :( #SadFace");
}
OUT("\nThings have finished.\nI hope you're OK.");
}
catch(IOException | URISyntaxException eek) {
OUT("**Stuff wrongly: "+ eek.getMessage());
}
}
private static void OUT(String str) {
System.out.println(str);
}
}
मैं बृजेश कुमार के जवाब को क्लोजर में उपरोक्तानुसार पढ़ता हूं :
(defn open-browser
"Open a new browser (window or tab) viewing the document at this `uri`."
[uri]
(if (java.awt.Desktop/isDesktopSupported)
(let [desktop (java.awt.Desktop/getDesktop)]
(.browse desktop (java.net.URI. uri)))
(let [rt (java.lang.Runtime/getRuntime)]
(.exec rt (str "xdg-open " uri)))))
अगर यह किसी के लिए उपयोगी है।