java读取操作系统环境变量

变量

java读取操作系统环境变量

/**
文件名:SysProb.java
描述: 取得当前系统变量的程序。 java中的System.getProperty只是针对JVM来的,如果要取得系统环境变量,还要用到系统相关的函数
作者: 慈勤强
Email :cqq1978@Gmail.com
**/

import java.util.*;
import java.io.*;

class SysProb
{
//返回当前系统变量的函数,结果放在一个Properties里边,这里只针对win2k以上的,其它系统可以自己改进
public Properties getEnv() throws Exception
{
Properties prop=new Properties();
String OS = System.getProperty("os.name").toLowerCase();
Process p=null;
if(OS.indexOf("windows")>-1)
{
p=Runtime.getRuntime().exec("cmd /c set"); //其它的操作系统可以自行处理, 我这里是win2k
}
BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line=br.readLine())!=null)
{
int i=line.indexOf("=");
if(i>-1)
{
String key=line.substring(0,i);
String value=line.substring(i+1);
prop.setProperty(key,value);
}
}
return prop;
}

//具体用法
public static void main(String[] args)
{
try
{
SysProb sp=new SysProb();
Properties p=sp.getEnv();
System.out.println(p.getProperty("Path")); //注意大小写,如果写成path就不对了
}
catch(Exception e)
{
System.out.println(e);
}

}
}

时间: 2024-09-17 03:40:40

java读取操作系统环境变量的相关文章

NSIS操作系统环境变量

原文:NSIS操作系统环境变量 手头有个项目需要修改PATH变量 需要!include "EnvVarUpdate.nsh"   以下是NSIS脚本代码 ; Script generated by the HM NIS Edit Script Wizard. !include "StrFunc.nsh" ; HM NIS Edit Wizard helper defines !define PRODUCT_NAME "Setup_Wintech"

java多线程操作同一个变量的问题,难道是多核cpu所致?

问题描述 java多线程操作同一个变量的问题,难道是多核cpu所致? 大家请看代码和输出结果,我百思不得其解,为什么 amount只加了一次,开始我以为是static所致,就算去掉也还是有几率出现这样的结果,难道是多核cpu真的把两个线程同时执行了? package study; public class MyRunnable implements Runnable { public static int amount=0; @Override public void run() { // TO

Perl操作系统环境变量的脚本代码_perl

如何用Perl脚本操作系统环境变量呢? 想必很多朋友马上就会想到Perl中提供的$ENV这个特殊的哈希变量,对,在$ENV中完全可以获取到一些系统变量.怎么获取呢?比如想要知道Path这个系统环境变量的内容,我们可以通过$ENV{'Path'} 来获取.如果想设置Path这个环境变量呢,哈,使用$ENV{'Path'}='C:\Windows\System32'来设置.想获取所有的环境变量列表也很简单,哈希遍历不就可以了~ 其实,本文中真正想问的是,你在通过上述方法设置了一个环境变量后,右击"我

如何定制Linux操作系统环境变量

Linux是一个多用户的操作系统.每个用户登录系统后,都会有一个专用的运行环境.通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义.用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量. 常见的环境变量 对于PATH和HOME等环境变量大家都不陌生.除此之外,还有下面一些常见环境变量. ◆ HISTSIZE是指保存历史命令记录的条数. ◆ LOGNAME是指当前用户的登录名. ◆ HOSTNAME是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个

bat批处理设置Java JDK系统环境变量文件

原文:bat批处理设置Java JDK系统环境变量文件 自己修改第3行的Java安装目录就可以设置JAVA_HOME, classPath,追加到PATH的最前面 JAVA_HOME=C:\Program Files\Java\jdk1.6.0_10 classPath=%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;. PATH=%JAVA_HOME%\bin;............     追加到PATH的最前面(解决最后该不该有分号的问题

JAVA之旅(二十六)——装饰设计模式,继承和装饰的区别,LineNumberReader,自定义LineNumberReader,字节流读取操作,I/O复制图片

JAVA之旅(二十六)--装饰设计模式,继承和装饰的区别,LineNumberReader,自定义LineNumberReader,字节流读取操作,I/O复制图片 一.装饰设计模式 其实我们自定义readLine就是一种装饰模式 当想要对已有的对象进行功能增强时,可以定义一个类,将已有对象传入,并且提供加强功能,那么自定义的该类就称为装饰类 package com.lgl.hellojava; public class HelloJJAVA { public static void main(S

利用java io操作多个文件

问题描述 利用java io操作多个文件 A文件: A B C D B文件: 1 2 3 4 利用java io操作A B 文件,得出 C文件: A 1234 B 1234 C 1234 D 1234 或者 A 1 A 2 A 3 A 4 B 1 B 1 B 2 B 3 B 4 ---- 大神求解 解决方案 第一种合并方式比较简单,A文件的逐行+B文件的全部内容,所以可以这样实现:先将B文件读入内存中存入中间变量中,然后逐行遍历A文件写入C文件. 参考实现如下,合并时注意添加必要的空格: imp

java简单操作word实例_java

本文为大家分享了java简单操作word例子,供大家参考,具体内容如下 package apache.poi; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; impor

java文件操作大全

java文件操作大全 文件的建立/检查与删除<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.io.*"%><html><head><title>文件的建立.检查与删除</title></head><body><%String path=request.getRealPath