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

Java 获取系统信息及Desktop类

    博客分类:
  • Java
阅读更多
原来在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) {
                //此为无法获取系统默认浏览器
            }            
        }
    }
}

分享到:
评论

相关推荐

    远程桌面 Java Remote Desktop.tar

    "远程桌面 Java Remote Desktop.tar"这个压缩包可能包含了一个基于Java实现的远程桌面解决方案。 Java RMI是Java提供的一个关键特性,它允许对象在不同的Java虚拟机之间进行通信。在远程桌面场景中,RMI可以用于在...

    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地址

    然后,我们检查当前系统是否支持`Desktop`类,如果支持,我们就获取到`Desktop`实例,并判断它是否支持浏览操作。如果支持,我们就调用`browse()`方法,传入URI对象,这样就能启动默认的浏览器并打开指定的URL。如果...

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

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    java源码包2

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    java 打开浏览器

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

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

    D:\002 我的工具类\018 获得系统信息\获取系统信息.txt D:\002 我的工具类\019 Java屏幕截图工具 D:\002 我的工具类\019 Java屏幕截图工具\Java实现网页截屏 D:\002 我的工具类\019 Java屏幕截图工具\Java实现网页...

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

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

    JAVA6.0的新特性

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

    java源码包3

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    Desktop.zip

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

    java实现备忘时钟

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

    java中的文件判断

    在 java 中,判断文件类型可以使用 `FileTypeMap` 类,该类提供了一个 getDefaultFileTypeMap() 方法,可以获取系统默认的文件类型映射。然后,我们可以使用 `getContentType()` 方法来获取文件的类型。 以下是一个...

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

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

    SMBIOS 获取系统硬件信息

    3. **系统信息工具**:很多第三方系统信息软件,如Speccy、HWiNFO等,也利用SMBIOS接口获取硬件信息,并以用户友好的方式显示出来。 在获取SMBIOS信息时,通常会关注以下几个关键点: - **CPU信息**:包括CPU型号...

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

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

    最新2020版 redis-desktop-manager

    Redis Desktop Manager是一款强大的图形化界面工具,专门用于管理和操作Redis键值存储系统。这款软件的最新2020版提供了用户友好的界面,使得数据库管理变得更加直观和便捷,尤其适合开发人员和数据库管理员进行日常...

    用java打开一个网页

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

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个...

Global site tag (gtag.js) - Google Analytics