原来在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实现的远程桌面解决方案。 Java RMI是Java提供的一个关键特性,它允许对象在不同的Java虚拟机之间进行通信。在远程桌面场景中,RMI可以用于在...
使用`java.nio.file.Paths`类的`get()`方法,结合系统属性,可以安全地获取桌面路径,处理不同操作系统的差异: ```java Path desktopPath = Paths.get(System.getProperty("user.home"), "Desktop"); ``` 这个...
4. **系统集成**:可能包含与操作系统交互的API,如打开文件、打印文档、访问剪贴板、获取系统信息等,使得Java应用能更好地融入本地环境。 5. **数据持久化**:为了存储用户设置或应用数据,库可能提供数据库连接...
然后,我们检查当前系统是否支持`Desktop`类,如果支持,我们就获取到`Desktop`实例,并判断它是否支持浏览操作。如果支持,我们就调用`browse()`方法,传入URI对象,这样就能启动默认的浏览器并打开指定的URL。如果...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
这个任务可以通过使用Java的`java.awt.Desktop`类来完成,该类提供了一种与操作系统进行交互的方法,包括打开浏览器、编辑文件、播放音频等。在"java 打开浏览器"这个主题中,我们将深入探讨如何使用Java实现这一...
D:\002 我的工具类\018 获得系统信息\获取系统信息.txt D:\002 我的工具类\019 Java屏幕截图工具 D:\002 我的工具类\019 Java屏幕截图工具\Java实现网页截屏 D:\002 我的工具类\019 Java屏幕截图工具\Java实现网页...
开发者可能利用了Java的ServerSocket和Socket类进行客户端与服务器端的数据通信,或者是通过Servlet和JSP技术构建动态Web应用,以实现用户登录、试题获取、提交答案等功能。 对于本地版,可能是以Java Desktop ...
其中,最显著的两个新特性当属`Desktop`类和`SystemTray`类的加入,它们使得Java应用能够更加无缝地集成到桌面环境中,提供了与操作系统更深层次的交互能力。 ### `Desktop`类 `Desktop`类是JDK 6中新增的一个类,...
6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...
标题“Desktop.zip”提示我们关注的是一个包含与桌面环境相关的文件的压缩包,而描述中的“jad-反编译”关键词则将焦点引向了Java应用程序的反编译过程。在IT领域,反编译是一种技术,用于将已编译的计算机程序(如...
Java并不直接支持通知,但可以通过第三方库,如JavaFX或使用操作系统级别的API(如Java的`Desktop`类),在备忘触发时弹出通知。 总结一下,实现一个Java备忘时钟需要以下步骤: 1. 理解和使用`java.time`包处理...
在 java 中,判断文件类型可以使用 `FileTypeMap` 类,该类提供了一个 getDefaultFileTypeMap() 方法,可以获取系统默认的文件类型映射。然后,我们可以使用 `getContentType()` 方法来获取文件的类型。 以下是一个...
要获取用户的桌面路径,可以使用`java.awt.Desktop`类的静态方法`getDesktopDirectory()`。以下是如何做到这一点的代码示例: ```java import java.awt.Desktop; import java.io.File; public class Main { ...
3. **系统信息工具**:很多第三方系统信息软件,如Speccy、HWiNFO等,也利用SMBIOS接口获取硬件信息,并以用户友好的方式显示出来。 在获取SMBIOS信息时,通常会关注以下几个关键点: - **CPU信息**:包括CPU型号...
总结来说,使用`java.awt.Desktop`类是推荐的方法,因为它更简洁、跨平台,且无需处理操作系统命令。而使用`Runtime.getRuntime().exec()`则需要根据具体操作系统编写不同的命令,虽然灵活性高,但增加了代码的复杂...
Redis Desktop Manager是一款强大的图形化界面工具,专门用于管理和操作Redis键值存储系统。这款软件的最新2020版提供了用户友好的界面,使得数据库管理变得更加直观和便捷,尤其适合开发人员和数据库管理员进行日常...
在Java中,我们通常使用`java.awt.Desktop`类来实现这个功能,该类提供了与本地桌面环境交互的能力,包括浏览网页、编辑文件、发送邮件等。下面将详细解释如何使用`Desktop`类来打开网页。 首先,确保引入了`java....
Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个...