- 浏览: 222605 次
- 性别:
- 来自: 魔都
文章分类
最新评论
-
tsinglongwu:
顶,解决了获取Date单元格的内容问题,原来要转换成DateC ...
【转】JXL获取Excel单元格的日期(DateCell.getDate)与实际填写日期相差8小时的解决方法 -
alexyao8:
威武,今天刚遇到这个问题
【转】JXL获取Excel单元格的日期(DateCell.getDate)与实际填写日期相差8小时的解决方法 -
freeren:
...
利用JAVA Bean 反射得到set,get方法 -
pandengzhegt:
我也敬礼!
《Java Annotation 高级应用》 -
yingzhor:
好文! 敬礼!
《Java Annotation 高级应用》
Java获取系统软件安装列表
package com.kevin.demo; /** * @author <a href="mailto:foohsinglong@gmail.com">kevin.long</a> * @description Java获取系统软件安装列表,代码核心来自网上,主要通过Runtime实现, * 用JNI也行,解决乱码问题 */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.Charset; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextPane; public class SystemSoftware { private JFrame f = new JFrame("本系统已经安装的软件列表"); private JTextPane textPane = new JTextPane(); private MyTable myTable=new MyTable(); public static Charset charset = Charset.forName("GBK"); public SystemSoftware() { f.setLocation(300, 200); f.setSize(800,500); JScrollPane jScrollPane = new JScrollPane(myTable.getTable()); f.add(jScrollPane); f.setVisible(true); f.setDefaultCloseOperation(f.EXIT_ON_CLOSE); try { check(); } catch (Exception e) { e.printStackTrace(); } } private void check() throws Exception { textPane.setText("您已经安装的软件:"); Runtime runtime = Runtime.getRuntime(); Process process = null; process = runtime .exec("cmd /c reg query HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\"); BufferedReader in = new BufferedReader(new InputStreamReader(process .getInputStream(),"GBK")); String string = null; while ((string = in.readLine()) != null) { process = runtime.exec("cmd /c reg query " + string + " /v DisplayName"); BufferedReader name = new BufferedReader(new InputStreamReader( process.getInputStream(),"GBK")); String[] message = queryValue(string); if(message!=null) myTable.addRow(message); f.repaint(); } in.close(); process.destroy(); } //具体查询每一个软件的详细信息 private String[] queryValue(String string) throws IOException { String nameString = ""; String versionString = ""; String publisherString=""; String uninstallPathString = ""; Runtime runtime = Runtime.getRuntime(); Process process = null; BufferedReader br = null; process = runtime.exec("cmd /c reg query " + string + " /v DisplayName"); br = new BufferedReader(new InputStreamReader(process .getInputStream(),"GBK")); br.readLine();br.readLine();//去掉前两行无用信息 if((nameString=br.readLine())!=null){ nameString=nameString.replaceAll("DisplayName REG_SZ ", ""); //去掉无用信息 } process = runtime.exec("cmd /c reg query " + string + " /v DisplayVersion"); br = new BufferedReader(new InputStreamReader(process .getInputStream(),"GBK")); br.readLine();br.readLine();//去掉前两行无用信息 if((versionString=br.readLine())!=null){ versionString=versionString.replaceAll("DisplayVersion REG_SZ ", ""); //去掉无用信息 } process = runtime.exec("cmd /c reg query " + string + " /v Publisher"); br = new BufferedReader(new InputStreamReader(process .getInputStream(),"GBK")); br.readLine();br.readLine();//去掉前两行无用信息 if((publisherString=br.readLine())!=null){ publisherString =publisherString.replaceAll("Publisher REG_SZ ", ""); //去掉无用信息 } process = runtime.exec("cmd /c reg query " + string + " /v UninstallString"); br = new BufferedReader(new InputStreamReader(process .getInputStream(),"GBK")); br.readLine();br.readLine();//去掉前两行无用信息 if((uninstallPathString=br.readLine())!=null){ uninstallPathString=uninstallPathString.replaceAll("UninstallString REG_SZ ", ""); //去掉无用信息 } String[] resultString=new String[4]; resultString[0]= nameString ;//== null ? null : new String(nameString.getBytes(),"GB-2312"); resultString[1]= versionString ;//== null ? null : new String(versionString.getBytes(),"GB-2312"); resultString[2]= publisherString ;//== null ? null : new String(publisherString.getBytes(),"GB-2312"); resultString[3]= uninstallPathString ;//== null ? null : new String(uninstallPathString.getBytes(),"GB-2312"); if(resultString[0]==null) resultString=null; //没有名字的不显示 return resultString; } //列表 private class MyTable{ private JTable jTable; private Object[][] data=new Object[100][4]; private Object[] colNames= { "软件名称","版本号","出版商","卸载路径"}; private int p=-1; public MyTable(){ } public void addRow(Object[] data){ p++; if(p>=100) return ; this.data[p]=data; } public JTable getTable(){ jTable=new JTable(data,colNames); return jTable; } } public static void main(String[] args) { new SystemSoftware(); } }
发表评论
-
applet访问打印机安全警告的解决方法
2013-03-20 15:28 1865这样的警告框,选择了“始縂允许applet访问打印机”在下 ... -
关于动态代理
2012-06-11 10:55 2347JDK动态代理 引用JDK 1.3以后,Java提供了动态代 ... -
HttpClient 实现快盘签到
2012-04-20 09:29 2555引用模拟POST提交实现快盘签到 import j ... -
HttpClient 入门
2012-04-10 15:45 1577一般的情况下我们都是使用IE或者Navigator浏览器来访问 ... -
【转】HttpClient4 简单使用
2012-04-10 15:37 1522需要导入的jar包 package main; im ... -
【转】android httpclient 上传文件
2012-04-10 15:33 1690public void uploadFileClient() ... -
Java 扑克发牌算法实现
2012-03-19 21:17 5798A. 扑克发牌算法是棋牌游戏中常用的基础算法,也是游戏开发人员 ... -
64 位JDK出现八小时时差解决方法
2012-02-27 15:22 2021发布的项目使用64位JDK,Java获取的时间总比正常的时候慢 ... -
更新sequence值的动态sql语句
2011-12-27 16:08 2103一. --导出之前把该语句执行一遍,复制执行结果,然后在导入后 ... -
hibernate 乐观锁与悲观锁使用
2011-12-21 15:20 1473Hibernate支持两种锁机制 ... -
【转】实现汉字向拼音的转化
2011-12-19 22:57 2365import java.io.UnsupportedEnc ... -
不用第三个变量交换值的五个办法
2011-12-12 09:49 3106不用第三个变量交换值的五个办法 package com.k ... -
【转】细数那些令人发狂的程序语言的特性
2011-12-11 14:41 13361、C语言中的数组 在C/C++中,a[10] 可以写成 10 ... -
【转】 Java集合
2011-12-08 19:37 1082引用1. Set: Set是一个集合接口,它的特征和数学上的集 ... -
网页制作的小技巧
2011-12-08 19:37 858让浏览器在保存页面时失败在页面源文件上增加下面一行代码,保存页 ... -
【转】Hashtable 和 HashMap的区别
2011-12-07 18:13 964HashTable的应用非常广泛,HashMap是新框架中用来 ... -
【转】ArrayList,LinkedList,Vector 的关系和区别
2011-12-07 18:06 1831ArrayList,LinkedList,Vector这三个类 ... -
【转】HashSet,LinkedHashSet,TreeSet 区别
2011-12-07 17:57 7253引用java.util.AbstractSet-> ja ... -
【转】HashSet和TreeSet的区别
2011-12-07 17:10 1670HashSet和TreeSet的区别 一. 问题 1. H ... -
Hibernate 支持wm_concat等函数
2011-11-14 16:31 1576背景:由于项目需要,我们在查询主信息时,可能需要通过某些明细信 ...
相关推荐
在Java编程环境中,有时我们需要获取用户的系统信息,例如已安装软件列表,以便进行特定的管理和操作。"JAVA查看安装软件列表(axun)"项目提供了一个实用的解决方案,它是一个小型的Java应用程序,允许开发者或者用户...
Java 访问注册列表需要使用 JNI(Java Native Interface)技术,通过 JNI 可以调用 Windows 操作系统的 API 函数。为了访问注册列表,需要下载两个文件:ICE_JNIRegistry.dll 和 registry.jar。其中,ICE_...
### 使用Java调用DOS命令获取系统进程列表 在日常的软件开发与系统管理工作中,经常需要通过编程的方式来获取或操作系统的相关信息。本篇文章将详细解释如何利用Java语言调用DOS命令来获取Windows系统的进程列表。...
标题“获取本机所有已安装的软件”涉及的是在计算机系统中检索已安装应用程序的过程,这对于系统维护、软件管理或程序开发来说都是重要的任务。在Windows操作系统中,这个过程可以通过不同的方式来实现。 首先,...
在Java编程语言中,获取计算机硬件信息,如主板ID(也称为系统UUID)和硬盘分区编号,是一项常见的任务,尤其在系统管理和软件授权等领域。以下将详细解释如何使用Java实现这些功能。 首先,主板ID是计算机主板上的...
安装完成后,需要更新系统的环境变量以确保Java3D能被Java虚拟机(JVM)识别。这通常涉及添加Java3D的库目录到`JAVA_HOME/jre/lib/ext`或者`JRE_HOME/lib/ext`路径下,然后将`java.class.path`环境变量更新,包含...
在Windows操作系统中,管理和了解已安装软件列表是系统维护的重要环节。这个名为"SoftInfo获取电脑中软件列表并导出.7z"的压缩包文件提供了一种便捷的方法,能够帮助用户快速收集并导出电脑上所有软件的相关信息。...
在Windows 7这样的操作系统上安装Java软件是开发和运行Java应用程序的基础步骤。本文将详细讲解如何在Win7系统下安装Java,并重点介绍JCreator中文版这款集成开发环境(IDE)。 首先,我们需要下载Java Development...
4. 配置环境变量:安装完成后,需要配置系统环境变量,让系统知道Java的安装位置。打开系统环境变量设置,添加以下两个变量: - `JAVA_HOME`:值设置为JDK的安装目录。 - `Path`:在系统变量的Path中添加 `%JAVA_...
本文旨在详细介绍如何在 IBM AIX 6.1 操作系统环境中进行 Java JRE 和 SDK 的安装及卸载,并对相关的环境变量配置方法进行了详尽的说明,帮助用户在该平台上顺利搭建起 Java 开发与运行环境。 #### 二、准备工作 ...
4. 自动配置:一键安装程序会自动检测并配置系统路径,确保Java可以在任何位置被调用。例如,设置`JAVA_HOME`环境变量,以及更新`PATH`变量,将Java可执行文件的路径添加进去。 5. 安装过程:点击“下一步”或...
Java 实现的自动阅卷系统是一种高效、便捷的教育辅助工具,它利用计算机技术自动评估学生的答案,大大减轻了教师的工作负担。在这个项目中,我们可以深入理解Java编程语言在处理大量数据、IO操作以及实现自动化流程...
本工具名为"java环境变量配置工具",它提供了一种便捷的方式,帮助用户自动获取Java的安装环境,从而省去了手动配置的麻烦。 首先,我们要理解Java环境变量的重要性。`JAVA_HOME`变量是指向Java安装目录的路径,...
- **兼容性问题**:确保 Java 版本与系统版本及其他已安装软件的兼容性。 #### 四、总结 本文档提供了关于在 UNIX 系统上安装 Sun Java Enterprise System 的重要信息。虽然文档本身未给出具体的安装步骤,但通过...
【Java系统软件技术架构设计方案】 本方案主要探讨的是基于Java技术的系统软件设计,旨在创建一个既能创造客户价值又能提供良好用户体验的软件产品。设计理念上,公司着重于用户友好性和功能实用性,兼顾成本控制、...
10. **错误处理与日志记录**:为了确保软件稳定性,系统需要处理可能出现的错误,并通过日志记录错误信息,例如使用Log4j或Java内置的日志框架。 综上所述,"java图片浏览管理系统"是一个集成了多种Java技术的项目...
【Java SQL超市管理系统软件工程】是一个综合性的项目,它涵盖了软件开发的多个重要方面,包括需求分析、系统设计、编程实现、数据库管理以及测试。在这个项目中,Java语言被用来编写应用程序,而SQL则用于管理和...
Java Service Wrapper是一个强大的工具,它允许开发者将Java应用程序轻松地包装为Windows系统服务,以便在操作系统启动时自动启动Java程序,并能实现与系统服务相同的管理功能,如自动重启、日志记录等。这个工具...
### Android开发之系统信息【4】——获取Android已安装程序列表 #### 一、概述 在Android开发过程中,有时我们需要获取设备上的一些硬件信息或软件信息。例如,开发者可能会关心设备上的内存状况或是已安装的应用...