আমি কীভাবে প্রোগ্রামে জাভাতে অপারেটিং সিস্টেম নির্ধারণ করব?


526

আমি হোস্টটির অপারেটিং সিস্টেমটি নির্ধারণ করতে চাই যে আমার জাভা প্রোগ্রামটি প্রোগ্রামগতভাবে চলছে (উদাহরণস্বরূপ: আমি উইন্ডোজ বা ইউনিক্স প্ল্যাটফর্মে আছি কিনা তার ভিত্তিতে বিভিন্ন সম্পত্তি লোড করতে সক্ষম হতে চাই)। 100% নির্ভরযোগ্যতার সাথে এটি করার নিরাপদতম উপায় কী?

উত্তর:


617

তুমি ব্যবহার করতে পার:

System.getProperty("os.name")

পিএস আপনি এই কোডটি দরকারী খুঁজে পেতে পারেন:

class ShowProperties {
    public static void main(String[] args) {
        System.getProperties().list(System.out);
    }
}

এটি যা করে তা হ'ল আপনার জাভা বাস্তবায়ন দ্বারা সরবরাহিত সমস্ত সম্পত্তি মুদ্রণ করা। এটি আপনাকে সম্পত্তিগুলির মাধ্যমে আপনার জাভা পরিবেশ সম্পর্কে কী জানতে পারে তার একটি ধারণা দেবে। :-)


6
আমি ব্যবহার করছি Windows 10এবং এখনও os.nameআমাকে দেয় Windows 8.1। কেন এমন? এটা কোথা থেকে আসছে?
ব্রায়ান


152

অন্যান্য উত্তরে যেমন নির্দেশিত হয়েছে, System.getProperty কাঁচা ডেটা সরবরাহ করে। যাইহোক, অ্যাপাচি কমন্স ল্যাং উপাদানটি জাভা.এলং.সিসটেমের জন্য হ্যান্ড্পার বৈশিষ্ট্যগুলির মতো একটি মোড়ক সরবরাহ করে SystemUtils.IS_OS_WINDOWS, যেমন অনেকটা পূর্বোক্ত সুইংক্স ওএস ব্যবহারের মতো।


2
এটা সত্যিই সহজ। আপনি প্রতিদিন অ্যাপাচি ল্যাং 3 এ নতুন বৈশিষ্ট্য আবিষ্কার করেন!
রবিন জোনসন

82

অক্টোবর ২০০৮:

আমি এটি একটি স্ট্যাটিক ভেরিয়েবলে ক্যাশে করার পরামর্শ দেব:

public static final class OsUtils
{
   private static String OS = null;
   public static String getOsName()
   {
      if(OS == null) { OS = System.getProperty("os.name"); }
      return OS;
   }
   public static boolean isWindows()
   {
      return getOsName().startsWith("Windows");
   }

   public static boolean isUnix() // and so on
}

এইভাবে, প্রতিবার ওসের জন্য জিজ্ঞাসা করার পরে, আপনি আপনার আবেদনের জীবদ্দশায় সম্পত্তি একবারে পান না do


ফেব্রুয়ারী 2016: 7+ বছর পরে:

উইন্ডোজ 10 এর সাথে একটি বাগ রয়েছে (যা মূল উত্তরের সময় উপস্থিত ছিল না)। উইন্ডোজ 10 এর জন্য
" জাভার" OS.name " দেখুন ? "


5
আমি getOSName কার্যক্রমে OAOO এর ভিত্তিতে (একবারে এবং একবারেই) একমত হয়েছি; যাইহোক, হ্যাশ লুকিংয়ের গতি প্রদানে ক্যাচিং সম্পূর্ণ নিরর্থক।
ক্রিস জেস্টার-ইয়ং

6
সামগ্রিকভাবে রিডানড্যান্টটি কিছুটা কঠোর হতে পারে, হ্যাশ দেখার জন্য একটি রেফারেন্স অ্যাক্সেস করার চেয়ে ব্যয়বহুল। এটি সব প্রসঙ্গে নির্ভর করে।
ক্রেগ দিবস

2
ভাল পয়েন্ট ... আপনি যদি এটি একটি খারাপ অনুশীলন বলে মনে করেন নিচে ভোট দিতে নির্দ্বিধায়;)
ভোনসি

5
আমি এই উত্তরটি আবার পড়ি। আপনি কি ক্যাশে করতে যাচ্ছি, তাহলে মান ক্যাশে isWindows, isUnixস্ট্রিং তুলনা সময় এছাড়াও সংরক্ষণ পথ, ইত্যাদি যে আপনি।
ক্রিস জেস্টার-ইয়ং

2
@ ব্রায়ান ট্রু আরও সাম্প্রতিক উত্তরটি উল্লেখ করার জন্য, আমি সেই অনুযায়ী এটি খুব পুরানো উত্তরটি সম্পাদনা করেছি।
ভনসি

44

উপরের উত্তরে কিছু লিঙ্ক ভাঙা মনে হচ্ছে। আমি নীচের কোডটিতে বর্তমান উত্স কোডে পয়েন্টার যুক্ত করেছি এবং উত্তর হিসাবে এনাম দিয়ে চেকটি পরিচালনা করার জন্য একটি পদ্ধতির প্রস্তাব দিচ্ছি যাতে ফলাফলটি মূল্যায়ন করার সময় একটি সুইচ বিবৃতি ব্যবহার করা যেতে পারে:

OsCheck.OSType ostype=OsCheck.getOperatingSystemType();
switch (ostype) {
    case Windows: break;
    case MacOS: break;
    case Linux: break;
    case Other: break;
}

সহায়ক শ্রেণি হ'ল:

/**
 * helper class to check the operating system this Java VM runs in
 *
 * please keep the notes below as a pseudo-license
 *
 * http://stackoverflow.com/questions/228477/how-do-i-programmatically-determine-operating-system-in-java
 * compare to http://svn.terracotta.org/svn/tc/dso/tags/2.6.4/code/base/common/src/com/tc/util/runtime/Os.java
 * http://www.docjar.com/html/api/org/apache/commons/lang/SystemUtils.java.html
 */
import java.util.Locale;
public static final class OsCheck {
  /**
   * types of Operating Systems
   */
  public enum OSType {
    Windows, MacOS, Linux, Other
  };

  // cached result of OS detection
  protected static OSType detectedOS;

  /**
   * detect the operating system from the os.name System property and cache
   * the result
   * 
   * @returns - the operating system detected
   */
  public static OSType getOperatingSystemType() {
    if (detectedOS == null) {
      String OS = System.getProperty("os.name", "generic").toLowerCase(Locale.ENGLISH);
      if ((OS.indexOf("mac") >= 0) || (OS.indexOf("darwin") >= 0)) {
        detectedOS = OSType.MacOS;
      } else if (OS.indexOf("win") >= 0) {
        detectedOS = OSType.Windows;
      } else if (OS.indexOf("nux") >= 0) {
        detectedOS = OSType.Linux;
      } else {
        detectedOS = OSType.Other;
      }
    }
    return detectedOS;
  }
}

3
(OS.indexOf ("ডারউইন")> = 0) কখনই সত্য হতে পারে না কারণ এটি পরে আসে (OS.indexOf ("win")>> 0)
উইলিয়াম

14
উপরের কোডটিতে স্থানীয় সমস্যা থাকতে পারে, যেহেতু এটি লওয়ারকেস () ব্যবহার করে যা লোকেল সংবেদনশীল। এই বিষয়গুলি যেখানে বিশেষত আমি যখন ছোট / উচ্চতর কেস রূপান্তর করি তখন তুরস্কে, আমি লোয়ার কেটেড আই (ı) হয়ে যায় এবং আমি আপার কেটেড আই (İ) হয়ে যাই। সুতরাং "উইন্ডোস"। টুলওয়ারকেস ()। ইনডেক্সফ ("জয়") তুরস্কে ফিরে আসবে -1। কোনও নির্দিষ্ট ভাষার যেমন, "উইন্ডোস"। টুলওয়ারকেস (লোকাল.এএনজিএলআইএসএইচ) .indexOf ("উইন") কাজ করার সময় সর্বদা লোকেল পাস করুন pass
জেমস রোপার

@ জামারস রোপার - থেক্স এটি স্থির করেছে।
ওল্ফগ্যাং ফাহল

7
ওএস.কন্টেইনস (...)
গ্রিগরি কিসলিন

42

নিম্নলিখিত জাভাএফএক্স ক্লাসে বর্তমান ওএস (isWindows (), isLinux () ...) নির্ধারণের জন্য স্থির পদ্ধতি রয়েছে:

  • com.sun.javafx.PlatformUtil
  • com.sun.media.jfxmediaimpl.HostUtils
  • com.sun.javafx.util.Utils

উদাহরণ:

if (PlatformUtil.isWindows()){
           ...
}

এটি আরও বেশি হওয়া উচিত
আবাসস্থল

3
দয়া করে নোট করুন যে "com / sun / javafx / *" এ অ্যাক্সেসটি এখন নিরুৎসাহিত করা হয়েছে (এটি জেডিকে 1.8.0_121 দিয়ে পরীক্ষা করা হয়েছে)।
মাইকেল মার্টন

1
@ মিশেলমার্টন আপনার বক্তব্যের জন্য একটি রেফারেন্স আছে?
হাম্বলিং ইঞ্জিনিয়ারিং বিভি

@ হুমেলিংএঞ্জিনিয়ারিং বিভি: আমার ধারণা এটি আমার পক্ষ থেকে ভুল ছিল। আমি নিগ্রহ নিওন ৪..3.৩ নিয়ে কাজ করছি এবং "জাভা বিল্ড পাথ" বেশ কয়েকটি "নিরুৎসাহিত: com / sun / javafx / **" সতর্কতা দেখায়। তবে, যেমনটি আমি জানতে পেরেছি, এটি একটি গ্রহ-বাগ এবং / বা-বৈশিষ্ট্য ( লিঙ্কটি দেখুন ) হতে পারে।
মাইকেল মার্টন

2
আমাকে আরও একবার নিজেকে সংশোধন করতে হবে। জাভা 9/10 + দিয়ে শুরু করে বেশ কয়েকটি "com.sun। *" প্যাকেজ / এপিআইগুলি সরানো হতে চলেছে। পরীক্ষা করে দেখুন এই লিঙ্কে আরও তথ্যের জন্য। আমি আসলে এতে হোঁচট খেয়েছি কারণ আমরা এর মধ্যে কয়েকটি প্যাকেজ ব্যবহার করি। Cl.৮ / জেডিকে ১০-এ সরে যাওয়ার জন্য, অনুপস্থিত রেফারেন্সের কারণে আমাদের এখন এই এবং অন্যান্য বেশ কয়েকটি সংকলক ত্রুটিগুলি ঠিক করতে হবে।
মাইকেল মার্টন

16

টি এল; ডিআর

OS ব্যবহার অ্যাক্সেস জন্য: System.getProperty("os.name")


তবে কেন কোনও ইউটিলিটি ক্লাস তৈরি করবেন না, এটিকে পুনরায় ব্যবহারযোগ্য করে তুলুন! এবং সম্ভবত একাধিক কলগুলিতে আরও দ্রুত। পরিষ্কার, পরিষ্কার, দ্রুত!

এই জাতীয় ইউটিলিটি ফাংশনের জন্য একটি ইউটিলি ক্লাস তৈরি করুন। তারপরে প্রতিটি অপারেটিং সিস্টেমের জন্য পাবলিক এনাম তৈরি করুন।

public class Util {     
        public enum OS {
            WINDOWS, LINUX, MAC, SOLARIS
        };// Operating systems.

    private static OS os = null;

    public static OS getOS() {
        if (os == null) {
            String operSys = System.getProperty("os.name").toLowerCase();
            if (operSys.contains("win")) {
                os = OS.WINDOWS;
            } else if (operSys.contains("nix") || operSys.contains("nux")
                    || operSys.contains("aix")) {
                os = OS.LINUX;
            } else if (operSys.contains("mac")) {
                os = OS.MAC;
            } else if (operSys.contains("sunos")) {
                os = OS.SOLARIS;
            }
        }
        return os;
    }
}

এখন, আপনি সহজেই যেকোন ক্লাস থেকে ক্লাসটি নিম্নরূপে আহ্বান করতে পারেন, (পিএস যেহেতু আমরা ওএস ভেরিয়েবলটিকে স্ট্যাটিক হিসাবে ঘোষণা করেছি, এটি সিস্টেমের ধরণ সনাক্ত করতে একবার সময় ব্যয় করবে, তারপরে এটি আপনার অ্যাপ্লিকেশন বন্ধ না হওয়া অবধি ব্যবহার করা যেতে পারে।)

            switch (Util.getOS()) {
            case WINDOWS:
                //do windows stuff
                break;
            case LINUX:

আর এটাই!


2
আমি এই টুকরা কোডটি একটি ওপেন সোর্স প্রকল্পে ( github.com/openhab/openhab-addons ) ব্যবহার করতে চাই, এটি কি আপনার সাথে ঠিক আছে?
কনস্টি পি

হ্যাঁ এটি ব্যবহার করতে নির্দ্বিধায় দয়া করে।
মেমিন

13

আপনি যা অর্জন করার চেষ্টা করছেন তার একটি ছোট উদাহরণ সম্ভবত classনীচের জিনিসগুলির সাথে একটি অনুরূপ হতে পারে:

import java.util.Locale;

public class OperatingSystem
{
    private static String OS = System.getProperty("os.name", "unknown").toLowerCase(Locale.ROOT);

    public static boolean isWindows()
    {
        return OS.contains("win");
    }

    public static boolean isMac()
    {
        return OS.contains("mac");
    }

    public static boolean isUnix()
    {
        return OS.contains("nux");
    }
}

এই নির্দিষ্ট প্রয়োগটি বেশ নির্ভরযোগ্য এবং সর্বজনীনভাবে প্রযোজ্য। এটি কেবল আপনার classপছন্দ মতো অনুলিপি করুন এবং আটকান ।


10

যদি আপনি আগ্রহী হন যে কোনও ওপেন সোর্স প্রকল্পটি কীভাবে এরকম স্টাফগুলি করে, আপনি এখানে টেরাকোটার ক্লাস (ওস.জাভা) যা এই জঞ্জালটি পরিচালনা করে তা পরীক্ষা করে দেখতে পারেন:

এবং আপনি এখানে জেভিএম সংস্করণগুলি (ভিএম.জাভা এবং ভিএম ভার্সন.জাভা) হ্যান্ডেল করার জন্য একই ধরণের শ্রেণি দেখতে পারেন:


2
টেরাকোটার ক্লাসটি বেশ বিস্তৃত!
স্টিয়ার্ট

3
লাইসেন্স সাবধান !!
হার্শওয়ার

ওল্ফগ্যাং ফাহলের উত্তরে জেমস রোপার দ্বারা চিহ্নিত একই সমস্যা থেকেও ভুগছেনtoLowerCase
কোনও

9

সহজ এবং সহজ এটি চেষ্টা করুন

System.getProperty("os.name");
System.getProperty("os.version");
System.getProperty("os.arch");

9

এই প্রকল্পটি https://github.com/RishiGapt12/serial-communication-manager থেকে নেওয়া

String osName = System.getProperty("os.name");
String osNameMatch = osName.toLowerCase();
if(osNameMatch.contains("linux")) {
    osType = OS_LINUX;
}else if(osNameMatch.contains("windows")) {
    osType = OS_WINDOWS;
}else if(osNameMatch.contains("solaris") || osNameMatch.contains("sunos")) {
    osType = OS_SOLARIS;
}else if(osNameMatch.contains("mac os") || osNameMatch.contains("macos") || osNameMatch.contains("darwin")) {
    osType = OS_MAC_OS_X;
}else {
}

8

নীচের কোডগুলিতে সিস্টেম এপিআই থেকে আপনি যে মানগুলি পেতে পারেন সেগুলি দেখায়, এই API এর মাধ্যমে এই সমস্ত জিনিস আপনি পেতে পারেন।

public class App {
    public static void main( String[] args ) {
        //Operating system name
        System.out.println(System.getProperty("os.name"));

        //Operating system version
        System.out.println(System.getProperty("os.version"));

        //Path separator character used in java.class.path
        System.out.println(System.getProperty("path.separator"));

        //User working directory
        System.out.println(System.getProperty("user.dir"));

        //User home directory
        System.out.println(System.getProperty("user.home"));

        //User account name
        System.out.println(System.getProperty("user.name"));

        //Operating system architecture
        System.out.println(System.getProperty("os.arch"));

        //Sequence used by operating system to separate lines in text files
        System.out.println(System.getProperty("line.separator"));

        System.out.println(System.getProperty("java.version")); //JRE version number

        System.out.println(System.getProperty("java.vendor.url")); //JRE vendor URL

        System.out.println(System.getProperty("java.vendor")); //JRE vendor name

        System.out.println(System.getProperty("java.home")); //Installation directory for Java Runtime Environment (JRE)

        System.out.println(System.getProperty("java.class.path"));

        System.out.println(System.getProperty("file.separator"));
    }
}

উত্তর: -

Windows 7
6.1
;
C:\Users\user\Documents\workspace-eclipse\JavaExample
C:\Users\user
user
amd64


1.7.0_71
http://java.oracle.com/
Oracle Corporation
C:\Program Files\Java\jre7
C:\Users\user\Documents\workspace-Eclipse\JavaExample\target\classes
\

7

আমি দেখতে পেলাম যে সুইংক্সের ওএস ইউটিসগুলি কাজটি করে।


2
উপরের লিঙ্কটি সম্ভবত ভেঙে গেছে বলে মনে হচ্ছে সম্ভবত সুইংএক্স শাখা প্রবর্তনের কারণে; 1.6 প্রকাশটি এখানে রয়েছে: swingx.dev.java.net/source/browse/swingx/tags/SwingX-1-6/src/…
ডেভিড মোলস

1
@ ডেভিড মোলস, ধন্যবাদ আমি উত্তর দেওয়ার সময় লিঙ্কটি ঠিক ছিল - আমি এখন এটি আপনার সাথে আপডেট করেছি।
রিচার্ড হ্যারিসন

2
: সাম্প্রতিক সংস্করণ এখানে java.net/projects/swingx/sources/svn/content/trunk/swingx-core/...
Vladislav Rastrusny

6

আমি মনে করি নিম্নলিখিতগুলি আরও কম লাইনে বিস্তৃত কভারেজ দিতে পারে

import org.apache.commons.exec.OS;

if (OS.isFamilyWindows()){
                //load some property
            }
else if (OS.isFamilyUnix()){
                //load some other property
            }

আরও বিশদ এখানে: https://commons.apache.org/proper/commons-exec/apidocs/org/apache/commons/exec/OS.html



4

আপনি কেবলমাত্র sun.awt.OSInfo # getOSType () পদ্ধতি ব্যবহার করতে পারেন


এটি সেরা উত্তর হওয়া উচিত! আমি ইতিমধ্যে এখানে কেউ ইতিমধ্যে এটি উল্লেখ আছে কিনা তা পরীক্ষা করে দেখছিলাম।
মার্টিন ক্রাজারোভিč

এটি 'সীমাবদ্ধ এপিআই' হবার জন্য কোনও পরিকল্পনা? আমি এটি ব্যবহার করে দেখতে চাই তবে এটি গ্রহণের আগে আমাকে সতর্কতা দেয়। আমি একটি পুরানো জের (উদাহরণস্বরূপ jre1.8.0_171) ব্যবহার করতে পারি, তবে সর্বশেষতম 1.8 জ্রে এটি সীমাবদ্ধ হিসাবে চিহ্নিত করেছে।
ব্রায়ান_এন্টেই

4

আপনি যদি সুরক্ষা সংবেদনশীল পরিবেশে কাজ করছেন, তবে দয়া করে এটি পড়ুন।

System#getProperty(String)সাব্রুটিনের মাধ্যমে প্রাপ্ত কোনও সম্পত্তির উপর বিশ্বাস করা থেকে বিরত থাকুন ! প্রকৃতপক্ষে, প্রায় প্রতিটি সম্পত্তি সহ os.arch, os.nameএবং os.versionআপনি যেমনটি আশা করতে পারেন তেমন পাঠ্য নয় - পরিবর্তে, তারা আসলে বেশ বিপরীত।

প্রথমত, System#setProperty(String, String)সাবরোটিনকে ডাকার পর্যাপ্ত অনুমতি সহ যে কোনও কোড ইচ্ছামত প্রত্যাবর্তিত আক্ষরিক পরিবর্তন করতে পারে। যাইহোক, যে অগত্যা প্রাথমিক ইস্যু এখানে হিসাবে এটি একটি তথাকথিত ব্যবহারের মাধ্যমে সমাধান করা যেতে পারে SecurityManager, ওভার বেশী বিস্তারিত বর্ণনা অনুযায়ী এখানে

আসল সমস্যাটি হ'ল যে কোনও ব্যবহারকারী প্রশ্নযুক্ত অবস্থায় চলাকালীন এই বৈশিষ্ট্যগুলি সম্পাদনা করতে সক্ষম হন JAR। এর অর্থ এই বৈশিষ্ট্যগুলি প্রকৃতপক্ষে সঠিক কিনা তা নির্ধারণের কোনও উপায় নেই । এ কারণে, ছড়িয়ে পড়ার চেষ্টা এবং এড়ানোর জন্য কয়েকটি অতিরিক্ত চেক এখানে দেওয়া হয়েছে:

// The first thing we're able to do is to query the filesystem.
switch (java.io.File.separator)
{
    case "/":
        // Windows is a potential candidate.
        break;
    case "\\":
        // And here it could really be anything else.
        break;
    default:
        // There's probably something really wrong here by now.
        break;
}

অপর একটি ভাল ধারণা অপারেটিং সিস্টেম নির্দিষ্ট ডিরেক্টরি উপস্থিতি পরীক্ষা করা হয়। আপনি যে পদ্ধতি গ্রহণ করতে পারেন, মনে রাখবেন যে জাভা ভাষা ক্রস প্ল্যাটফর্ম হিসাবে অভিযুক্ত ind তাহলে, আপনি কেন একই চেষ্টা করবেন না?


3

আমি ওল্ফগ্যাংয়ের উত্তর পছন্দ করলাম, কারণ আমি বিশ্বাস করি যে এই জাতীয় জিনিসগুলি কনস্টেট হওয়া উচিত ...

তাই আমি নিজের জন্য এটি কিছুটা পুনরায় চাপিয়ে দিয়েছি এবং এটিকে ভাগ করে নেওয়ার চিন্তা করেছি :)

/**
 * types of Operating Systems
 *
 * please keep the note below as a pseudo-license
 *
 * helper class to check the operating system this Java VM runs in
 * http://stackoverflow.com/questions/228477/how-do-i-programmatically-determine-operating-system-in-java
 * compare to http://svn.terracotta.org/svn/tc/dso/tags/2.6.4/code/base/common/src/com/tc/util/runtime/Os.java
 * http://www.docjar.com/html/api/org/apache/commons/lang/SystemUtils.java.html
 */
public enum OSType {
    MacOS("mac", "darwin"),
    Windows("win"),
    Linux("nux"),
    Other("generic");

    private static OSType detectedOS;

    private final String[] keys;

    private OSType(String... keys) {
        this.keys = keys;
    }

    private boolean match(String osKey) {
        for (int i = 0; i < keys.length; i++) {
            if (osKey.indexOf(keys[i]) != -1)
                return true;
        }
        return false;
    }

    public static OSType getOS_Type() {
        if (detectedOS == null)
            detectedOS = getOperatingSystemType(System.getProperty("os.name", Other.keys[0]).toLowerCase());
        return detectedOS;
    }

    private static OSType getOperatingSystemType(String osKey) {
        for (OSType osType : values()) {
            if (osType.match(osKey))
                return osType;
        }
        return Other;
    }
}

দেখে মনে হচ্ছে "ডারউইন" কখনই মিলছে না কারণ "উইন" চেক করলে উইন্ডোজটি ইতিমধ্যে ফিরে আসবে।
টিভিকেন্টার্স

আমার মূল উত্তরের
ওল্ফগ্যাং ফাহল

3
অভিনন্দন, আপনি পুনর্নবীকরণ করেছেন sun.awt.OSInfo # getOSType :)
কিরিল গামাজকভ

এইচএইচএইচএইচএইচ ... ভাল ... @ কিরিল গাজাজকভ আমি তখনই এটি খুঁজে পেলাম না .. এটি
দেখানোর

2

সিস্টেমের ওএস প্রকার, নাম, জাভা তথ্য ইত্যাদির সমস্ত তথ্য প্রদর্শন করার জন্য এই কোড।

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Properties pro = System.getProperties();
    for(Object obj : pro.keySet()){
        System.out.println(" System  "+(String)obj+"     :  "+System.getProperty((String)obj));
    }
}

1

Com.sun.jna.প্ল্যাটফর্ম ক্লাসে আপনি যেমন দরকারী স্ট্যাটিক পদ্ধতি খুঁজে পেতে পারেন

Platform.isWindows();
Platform.is64Bit();
Platform.isIntel();
Platform.isARM();

এবং আরো অনেক কিছু.

আপনি যদি মাভেন ব্যবহার করেন তবে নির্ভরতা যুক্ত করুন

<dependency>
 <groupId>net.java.dev.jna</groupId>
 <artifactId>jna</artifactId>
 <version>5.2.0</version>
</dependency>

অন্যথায় কেবল jna গ্রন্থাগার জার ফাইলটি (উদাহরণস্বরূপ jna-5.2.0.jar) সন্ধান করুন এবং এটি ক্লাসপথে যুক্ত করুন।


1

ঠিক com.sun.javafx.util.Utilsনীচের হিসাবে ব্যবহার করুন ।

if ( Utils.isWindows()){
     // LOGIC HERE
}

বা ব্যবহার করুন

boolean isWindows = OSInfo.getOSType().equals(OSInfo.OSType.WINDOWS);
       if (isWindows){
         // YOUR LOGIC HERE
       }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.