How do you determine 32 or 64 bit architecture of Windows using Java?

后端 未结 9 2142
佛祖请我去吃肉
佛祖请我去吃肉 2020-11-30 03:02

How do you determine 32 or 64 bit architecture of Windows using Java?

9条回答
  •  死守一世寂寞
    2020-11-30 03:29

    I used the command prompt (command --> wmic OS get OSArchitecture) to get the OS architecture. The following program helps get all the required parameters:

    import java.io.*;
    
    public class User {
        public static void main(String[] args) throws Exception {
    
            System.out.println("OS --> "+System.getProperty("os.name"));   //OS Name such as Windows/Linux
    
            System.out.println("JRE Architecture --> "+System.getProperty("sun.arch.data.model")+" bit.");       // JRE architecture i.e 64 bit or 32 bit JRE
    
            ProcessBuilder builder = new ProcessBuilder(
                "cmd.exe", "/c","wmic OS get OSArchitecture");
            builder.redirectErrorStream(true);
            Process p = builder.start();
            String result = getStringFromInputStream(p.getInputStream());
    
            if(result.contains("64"))
                System.out.println("OS Architecture --> is 64 bit");  //The OS Architecture
            else
                System.out.println("OS Architecture --> is 32 bit");
    
            }
    
    
        private static String getStringFromInputStream(InputStream is) {
    
            BufferedReader br = null;
            StringBuilder sb = new StringBuilder();
    
            String line;
            try {
    
                br = new BufferedReader(new InputStreamReader(is));
                while ((line = br.readLine()) != null) {
                    sb.append(line);
                }
    
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (br != null) {
                    try {
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
    
            return sb.toString();
    
        }
    
    }
    

提交回复
热议问题