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

JVM获取系统属性以及执行command命令

 
阅读更多

下面的程序记录着JVM运行环境的值,以及怎么运行可执行文件。

 

 

 

package com.xiva.javaDemo;

import java.io.InputStream;
import java.util.Properties;
import java.util.Scanner;

import org.junit.Test;

public class ChineseCharSplit {
	
	/**
	 * Java对String操作为UNICODE的方式,所以不存在截取字符的问题;但是当做byte来处理时就需要注意了
	 */
	@Test public void splitChar(){
		
		String message = "ABCDE我是中国人";
		char[] messArray = message.toCharArray();
		byte[] bytes =  message.getBytes();
		byte[] cBytes = {bytes[0],bytes[1],bytes[2],bytes[3],bytes[4],bytes[5],bytes[6]};
		System.out.println(messArray.length);
		System.out.println(bytes.length);
		System.out.println(cBytes[6]);
		System.out.println(message.substring(0, 5));
		System.out.println();
		
	}
	
	
	/**
	 * 可以根据操作系统名称来决定处理方式比如DLL与SO文件
	 */
	@Test public void getSystemProp(){
		
		Properties props = System.getProperties(); //获得系统属性集   
		String useName   = props.getProperty("user.name");//当前操作系统用户名
		String osName    = props.getProperty("os.name"); //操作系统名称    
		String osArch    = props.getProperty("os.arch"); //操作系统构架    
		String osVersion = props.getProperty("os.version"); //操作系统版本   
		
		System.out.println(useName+"操作系统名称:"+osName+osArch+"系统版本 :"+osVersion);
	}
	
	/**
	 * 由此我们可以联想到可以执行其他的命令
	 */
	@Test public void getMacAddress(){
	
		String command = "cmd.exe /c ipconfig /all"; 
		String qqExe = "D:\\Program Files\\Tencent\\QQ\\Bin\\QQ.exe";
        try{
        	Process p           = Runtime.getRuntime().exec(command);
        	InputStream iStream = p.getInputStream();
        	Scanner scanner     = new Scanner(iStream);
        	while(scanner.hasNext()){
        		System.out.println(scanner.nextLine());
        	}
        }catch(Exception e){
        	e.printStackTrace();
        }
     
	}
}
 

String qqExe = "D:\\Program Files\\Tencent\\QQ\\Bin\\QQ.exe";

假如我们执行上述命令,则可以启动我们的QQ程序。

同样在windows下我们将命令换为"tasklist"时,就可以获取我们当前系统进程的信息。如下图示:

应该说能在命令行执行的命令在这里同样可以使用。

分享到:
评论

相关推荐

    Ubuntu通过apt-get命令安装java jdk6

    在项目属性中找到`Settings -> Cygwin/C++ -> Linker -> Command Line`部分,尝试调整链接器命令行参数,例如添加`-lmingw32`等。 此外,还可以通过设置`LD_LIBRARY_PATH`环境变量来指定动态链接库的搜索路径,以...

    10常用类2.doc

    `Runtime`类的使用通常是为了获取系统信息或执行系统级别的操作,例如调用操作系统命令。它的单例设计确保了在整个JVM生命周期中只有一个实例,避免了资源浪费。 另一方面,`System`类是Java中的另一个核心类,包含...

    Java监控工具.pdf

    你可以通过`jcmd process_id command optional_arguments`来执行命令,比如`jcmd process_id VM.uptime`来查看JVM的运行时间,或者`jcmd process_id VM.system_properties`来获取系统属性。 2. **jconsole**: ...

    mc启动器制作教程.docx

    D 参数配置 JVM 系统属性,格式为 `-D<name>=<value>`: * `-Dos.name=Windows 10 -Dos.version=10.0`:当前系统名称及版本 * `-Dminecraft.launcher.brand=minecraft-launcher -Dminecraft.launcher.version=2.1....

    java编码规范考试题答案.docx

    10. **获取操作系统用户名**:通过JVM属性获取操作系统登录用户名:`System.getProperty("user.name")`。 11. **代码编写**:推荐使用Java的新循环写法,如foreach。变量与常量比较时,常量应在操作符右边。方法...

    【Java软件开发常用词汇表】(按学习进度排序) .pdf

    32. **命令(Command, cmd)**:在操作系统中执行特定任务的指令。 33. **目录(Directory)**:文件系统的组织结构,包含文件和子目录。 34. **改变目录(Change Directory, cd)**:在文件系统中切换当前工作目录...

    J2ME考试复习试题.doc

    #### Command命令类型 - **知识点解析**:`Command`类在J2ME中定义了多种命令类型,用于用户界面的交互和控制,具体包括哪些类型需要查阅J2ME API文档以获取最准确的信息。这些命令类型覆盖了常见的用户操作,如...

    2021-2022计算机二级等级考试试题及答案No.15871.docx

    - **Command对象:** 用于执行SQL命令或存储过程。 - **Recordset对象:** 用于存储和操作从数据库检索出的数据记录集合。 ### 12. 数据库中的索引操作 **知识点概述:** 索引是用来加快数据检索速度的数据库结构...

    ssh2错误学习记录

    如果遇到JVM编译相关的问题,可以在`eclipse.ini`文件中添加`-XX:CompileCommand=exclude,package/class,method`来排除特定方法的即时编译,例如`-XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/...

    【05-面向对象(下)】

    当通过对象来访问类属性时,系统会在底 层转换为通过该类来访问类 属性。 类成员规则 •类成员并不是属于实例,它是属于类本身的。只要类存在,类成员就存在。 •即使通过null对象来访问类成员,程序...

    .net易筋经面试宝典

    21. ADO.NET对象模型:主要包括Connection(连接)、Command(命令)、DataReader(数据读取器)、DataAdapter(数据适配器)和DataSet(数据集)等组件,用于数据库操作。 22. WebService:基于SOAP和HTTP协议,使用XML编码...

    IT英语与IT术语解释

    - **Command(命令)**: 用户或程序发出的具体操作指令。 - **Compile(编译)**: 将高级语言编写的源代码转换成机器可执行的格式的过程。 ##### D - **Data(数据)**: 信息的表现形式,可以是文本、数字、图像等...

    Matlab常见问题集锦 (2).docx

    MATLAB有一个名为“command history”的窗口,可以查看和使用历史输入命令。 9. **MATLAB 7.0与64位CPU兼容性**: MATLAB7.0可能无法在64位CPU上运行,因为其依赖的虚拟机可能仅支持IA32架构。尝试寻找64位的Java...

    JAVA程序员常用英语

    - **Command**(命令): 用户通过键盘或鼠标触发的系统动作。 - **Compile**(编译): 将源代码转换成机器可读格式的过程。 #### D. 文件与库 - **Document**(文档): 保存和展示信息的文件。 - **DLL (Dynamic ...

    J2ME练习题 复习 资料

    10. 支持J2ME的核心类包括MIDlet、Display、Command、Alert等,分别用于管理应用程序、显示内容、处理用户命令和提示信息。 11. J2ME应用发布通常涉及打包成JAR文件,并可能创建jad文件,通过网络下载或直接安装到...

    java常用语句大全java编码规范模拟测验答案

    - 由JVM属性获取:`System.getProperty("user.name")`。这种方法可以在不依赖用户输入的情况下获取当前用户的登录名。 #### 循环写法 1. **循环优化** - 正确做法:尽量使用Java 5.0新循环写法,如增强for循环...

    java 编程常用英语单词 解释

    - **用途**:Java程序需要先经过编译,然后才能被Java虚拟机(JVM)解释执行。 #### Constant (常量) - **定义**:常量是在程序执行期间其值不会改变的量。 - **用途**:常量通常用于存储固定的值,如数学常数或...

    超级有影响力霸气的Java面试题大全文档

     Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常...

    net学习笔记及其他代码应用

    答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。 40.接口是否可...

Global site tag (gtag.js) - Google Analytics