`
skyfine
  • 浏览: 24800 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java 获取操作系统信息与Desktop类

阅读更多
原来在GUI界面的MailClient中加入了类似OutLook的URL跳转支持,用的是Runtime接口.执行cmd来启动浏览器打开链接.这样当然有很多缺点了.依赖操作系统也可能会出现一些不安全问题.所以刚才上网查了一下Java SE 6.0的新功能.以前Java SE 6.0刚推出的时候看过新功能的资料.但是当时只用了一个Tray工具栏图标.其他的只是大概知道了他们的存在.

现在又看了一次介绍.本来刚才只发现用System.getProperties()可以获取系统的信息.包括JDK路径,系统版本等等信息.我需要的是System.getProperty("sun.desktop")获取系统类型,因为我用的是Windows操作系统,所以返回的String为windows.用System.getProperty("os.name")可以获取更详细的一些信息,我得到的结果为windows xp

现在给大家推荐一些我认为有些作用的字段

user.home 可以获取当前用户的主目录

java.specification.version 获取当前JDK的版本号

java.class.path 获取classpath

user.name 获取当前用户名

java.home 获取JDK路径

sun.os.patch.level 获取系统版本号..也可以说是补丁号 我的显示为Service Pack 2

user.dir 当前程序的主目录

os.arch 显示系统操作系统的类型 我的显示为X86

os.version 显示系统内部版本号

java.io.tmpdir 显示当前系统的临时目录

后来发现Java SE 6.0的新功能比这样先判断操作系统类型再执行特定操作方便多了.因为java.awt.Desktop类的java.awt.Desktop.isDesktopSupported()可以获取当前系统是否支持java awt桌面扩展.如果支持可以获取当前系统的Desktop

java.awt.Desktop dp = java.awt.Desktop.getDesktop();

dp.browse(java.net.URI);

就可以启动系统默认的浏览器,所以也就解决了跨平台的问题.下面是示例代码:

public class TestSystem {
    public static void main(String[] args) {
        //判断当前系统是否支持Java AWT Desktop扩展
        if(java.awt.Desktop.isDesktopSupported()){
            try {
                //创建一个URI实例
                java.net.URI uri = java.net.URI.create("http://www.163.com/");
                //获取当前系统桌面扩展
                java.awt.Desktop dp = java.awt.Desktop.getDesktop();
                //判断系统桌面是否支持要执行的功能
                if(dp.isSupported(java.awt.Desktop.Action.BROWSE)){
                    //获取系统默认浏览器打开链接
                    dp.browse(uri);   
                }
            } catch(java.lang.NullPointerException e){
                //此为uri为空时抛出异常
            } catch (java.io.IOException e) {
                //此为无法获取系统默认浏览器
            }            
        }
    }
}
分享到:
评论
1 楼 blgaici1 2009-11-17  
import java.util.Properties;   
  
Properties props=System.getProperties(); //获得系统属性集   
String osName = props.getProperty("os.name"); //操作系统名称   
String osArch = props.getProperty("os.arch"); //操作系统构架   
String osVersion = props.getProperty("os.version"); //操作系统版本
    public static String getProperty(String key)

键 相关值的描述
java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.home Java 安装目录
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
java.class.version Java 类格式版本号
java.class.path Java 类路径
java.library.path 加载库时搜索的路径列表
java.io.tmpdir 默认的临时文件路径
java.compiler 要使用的 JIT 编译器的名称
java.ext.dirs 一个或多个扩展目录的路径
os.name 操作系统的名称
os.arch 操作系统的架构
os.version 操作系统的版本
file.separator 文件分隔符(在 UNIX 系统中是“/”)
path.separator 路径分隔符(在 UNIX 系统中是“:”)
line.separator 行分隔符(在 UNIX 系统中是“/n”)
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录

相关推荐

    远程桌面 Java Remote Desktop.tar

    这个库可能使得Java应用能更自然地与用户操作系统交互,提供类似于本机远程桌面的体验。 "远程桌面 Java Remote Desktop.tar"这个压缩包可能包含了以下组件: 1. **源代码**:Java编写的远程桌面客户端和服务端程序...

    java 获取桌面路径

    使用`java.nio.file.Paths`类的`get()`方法,结合系统属性,可以安全地获取桌面路径,处理不同操作系统的差异: ```java Path desktopPath = Paths.get(System.getProperty("user.home"), "Desktop"); ``` 这个...

    java-desktop-util:Java桌面实用程序

    4. **系统集成**:可能包含与操作系统交互的API,如打开文件、打印文档、访问剪贴板、获取系统信息等,使得Java应用能更好地融入本地环境。 5. **数据持久化**:为了存储用户设置或应用数据,库可能提供数据库连接...

    Java调用浏览器打开URL地址

    首先,Java提供了`Desktop`类,它是`java.awt.Desktop`包的一部分,可以用来与用户的桌面环境进行交互,包括打开浏览器、编辑文件、打印文档等。以下是一个简单的示例,展示如何使用`Desktop`类打开URL: ```java ...

    java源码包---java 源码 大量 实例

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    java 打开浏览器

    这个任务可以通过使用Java的`java.awt.Desktop`类来完成,该类提供了一种与操作系统进行交互的方法,包括打开浏览器、编辑文件、播放音频等。在"java 打开浏览器"这个主题中,我们将深入探讨如何使用Java实现这一...

    我积攒的java工具类 基本满足开发需要的工具类

    D:\002 我的工具类\001 流 D:\002 我的工具类\001 流\文件操作整体 D:\002 我的工具类\001 流\文件操作整体\FileEncodingUtil.java ...D:\002 我的工具类\027 Java6实现调用操作平台桌面系统\DesktopDemo.java

    java源码包2

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...

    Java读取“桌面”、“我的文档”路径的方法

    要获取用户的桌面路径,可以使用`java.awt.Desktop`类的静态方法`getDesktopDirectory()`。以下是如何做到这一点的代码示例: ```java import java.awt.Desktop; import java.io.File; public class Main { ...

    JAVA6.0的新特性

    其中,最显著的两个新特性当属`Desktop`类和`SystemTray`类的加入,它们使得Java应用能够更加无缝地集成到桌面环境中,提供了与操作系统更深层次的交互能力。 ### `Desktop`类 `Desktop`类是JDK 6中新增的一个类,...

    java实现备忘时钟

    Java并不直接支持通知,但可以通过第三方库,如JavaFX或使用操作系统级别的API(如Java的`Desktop`类),在备忘触发时弹出通知。 总结一下,实现一个Java备忘时钟需要以下步骤: 1. 理解和使用`java.time`包处理...

    java源码包3

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码...

    Desktop.zip

    标题“Desktop.zip”提示我们关注的是一个包含与桌面环境相关的文件的压缩包,而描述中的“jad-反编译”关键词则将焦点引向了Java应用程序的反编译过程。在IT领域,反编译是一种技术,用于将已编译的计算机程序(如...

    Java使用默认浏览器打开指定URL的方法(二种方法).rar

    总结来说,使用`java.awt.Desktop`类是推荐的方法,因为它更简洁、跨平台,且无需处理操作系统命令。而使用`Runtime.getRuntime().exec()`则需要根据具体操作系统编写不同的命令,虽然灵活性高,但增加了代码的复杂...

    JAVA编写的驾校在线考试系统

    开发者可能利用了Java的ServerSocket和Socket类进行客户端与服务器端的数据通信,或者是通过Servlet和JSP技术构建动态Web应用,以实现用户登录、试题获取、提交答案等功能。 对于本地版,可能是以Java Desktop ...

    用java打开一个网页

    在Java中,我们通常使用`java.awt.Desktop`类来实现这个功能,该类提供了与本地桌面环境交互的能力,包括浏览网页、编辑文件、发送邮件等。下面将详细解释如何使用`Desktop`类来打开网页。 首先,确保引入了`java....

    java文件夹选择框和Java文件选择器

    另一个关键的类是`SystemOS.java`,虽然这个文件名没有在描述中明确提及,但通常情况下,这可能是用来处理操作系统相关的操作,例如获取当前操作系统信息,或者根据不同的操作系统平台调整`JFileChooser`的行为。...

    最新2020版 redis-desktop-manager

    - **跨平台支持**:适用于Windows、macOS和Linux等不同操作系统。 - **错误修复**:解决之前版本存在的问题,提升软件稳定性。 4. **使用教程**:初次使用Redis Desktop Manager时,用户需要配置服务器信息,包括...

    java 远程桌面功能实现

    该库基于JNA(Java Native Access)技术,能够调用操作系统级别的RDP接口,实现与Windows、Linux等系统之间的远程连接。 3. **JNA(Java Native Access)**: JNA是Java平台上的一个库,允许Java代码直接调用操作...

    java 定时关机小程序

    此时,可能需要寻找其他方式,如使用Java的`java.awt.Desktop`类来唤醒操作系统自带的计划任务工具,或者使用第三方库如`JNA`(Java Native Access)来直接调用操作系统API。 此外,为了增加程序的健壮性和用户体验...

Global site tag (gtag.js) - Google Analytics