কেউ কীভাবে আমাকে ডিফল্ট ওয়েব ব্রাউজারটি খুলতে এবং পৃষ্ঠাকে "www.example.com" সেট করতে হয় তার জন্য সঠিক দিক নির্দেশ করতে পারে thanks
কেউ কীভাবে আমাকে ডিফল্ট ওয়েব ব্রাউজারটি খুলতে এবং পৃষ্ঠাকে "www.example.com" সেট করতে হয় তার জন্য সঠিক দিক নির্দেশ করতে পারে thanks
উত্তর:
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)পরিবর্তে চেকটি ব্যবহার করুন।
এখানে আমার কোড। এটি ডিফল্ট ব্রাউজারে প্রদত্ত ইউআরএল খুলবে (ক্রস প্ল্যাটফর্ম সমাধান)।
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 এবং উবুন্টু )। জাভা কোড থেকে ব্রাউজার খুলতে দয়া করে এটি চেষ্টা করুন:
উইন্ডোজ:
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এই ক্ষেত্রে ব্যবহার করা আরও ভাল। সমাধান তাই ম্যাকোস এক হিসাবে সহজ হতে পারে।
ক্রস প্ল্যাটফর্ম সমাধান তৈরি করতে আপনি রানটাইম ব্যবহার করতে পারেন :
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জাভা সংস্করণ ((১. since) থেকে এই সক্ষমতা সরবরাহ করেছে তবে নিম্নলিখিত সতর্কতার সাথে:
প্ল্যাটফর্মগুলি যা সমর্থন করে না বা সরবরাহ java.awt.Desktopকরে না তাদের জন্য ব্রাউজারল্যাঞ্চার 2 প্রকল্পটি দেখুন। এটি মূলত এরিক অ্যালবার্ট দ্বারা রচিত এবং প্রকাশিত ব্রাউজারলঞ্চার শ্রেণি থেকে প্রাপ্ত এবং কিছুটা আপডেট হয়েছে । আমি একাধিক প্ল্যাটফর্ম জাভা অ্যাপ্লিকেশনটিতে সফলভাবে ব্রাউজারলঞ্চার ক্লাসটি সফলভাবে ব্যবহার করেছি যা 2000 এর দশকের গোড়ার দিকে স্থানীয়ভাবে একটি ওয়েব ব্রাউজার ইন্টারফেসের সাথে চলেছিল।
নোট করুন যে ব্রাউজারল্যাঞ্চার 2 জিএনইউ লেজার জেনারেল পাবলিক লাইসেন্সের আওতায় লাইসেন্সযুক্ত । যদি সেই লাইসেন্সটি গ্রহণযোগ্য না হয় তবে মূল ব্রাউজারল্যাঞ্চারের অনুলিপিটির সন্ধান করুন যার একটি খুব উদার লাইসেন্স রয়েছে:
এই কোডটি এরিক অ্যালবার্ট (ejalbert@cs.stanford.edu) দ্বারা কপিরাইট 1999-2001 এবং মন্তব্যটির শেষ পর্যন্ত এই অনুচ্ছেদে এই মন্তব্যটির অংশ অপসারণ না করা অবধি কোনও বিধিনিষেধ ছাড়াই পুনরায় বিতরণ বা সংশোধন করা যেতে পারে as । লেখক অনুরোধ করেছেন যে এই কোডটি ব্যবহার করে এমন কোনও অ্যাপ্লিকেশন, অ্যাপলেট বা অন্যান্য বাইনারি সম্পর্কে তাকে অবহিত করা উচিত তবে এটি কোনও কিছুর চেয়ে কৌতূহলের বাইরে এবং এটির প্রয়োজন নেই। এই সফ্টওয়্যারটিতে কোনও ওয়্যারেন্টি নেই। ডেটা বা কার্যকারিতা বা এই সফ্টওয়্যারটি ব্যবহারের কোনও বিরূপ বা অপ্রত্যাশিত প্রভাবের জন্য লেখক দায়বদ্ধ নয়।
ক্রেডিট: স্টিভেন স্পেন্সার, জাভা ওয়ার্ল্ড ম্যাগাজিন (জাভা টিপ) 66) রন বি ইয়ে, এরিক শাপিরো, বেন অ্যাংবার, পল টাইটেলবাউম, আন্দ্রে ক্যানাতাতোর, ল্যারি বারোস্কি, ট্রেভর বেদজেক, ফ্রাঙ্ক মিড্রিচ এবং রন রাবাকুককে ধন্যবাদ
ব্রাউজারল্যাঞ্চার 2 ব্যতীত অন্যান্য প্রকল্পগুলিও 2001 সাল থেকে ব্রাউজার এবং ডিফল্ট সিস্টেম সুরক্ষা সেটিংসে পরিবর্তনগুলির জন্য অ্যাকাউন্টে আসল ব্রাউজারলঞ্চার আপডেট করতে পারে।
এটি খুব সহজ শুধু কোড নীচে লিখুন:
String s = "http://www.google.com";
Desktop desktop = Desktop.getDesktop();
desktop.browse(URI.create(s));
অথবা আপনি যদি ইউআরএল লোড করতে না চান তবে আপনার ব্রাউজারের নামটি স্ট্রিং মানগুলিতে লিখুন যেমন,
String s = "chrome";
Desktop desktop = Desktop.getDesktop();
desktop.browse(URI.create(s));
এটি কোনও প্রোগ্রাম চালানোর পরে খালি URL সহ স্বয়ংক্রিয়ভাবে ব্রাউজারটি খুলবে open
উইন্ডোতে "সেন্টিমিডি / কে শুরু করুন " http://www.example.com "প্রকৃতপক্ষে আপনি সর্বদা স্টার্ট কমান্ড ব্যবহার করে" ডিফল্ট "প্রোগ্রাম শুরু করতে পারেন। প্রারম্ভিক শুরুর জন্য 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)))))
যদি এটি কারও কাজে লাগে।