环境变量的自动配置

一个环境变量由两个串组成,这两个串由等号分开。最左边串是变量自身,最右边的串是和它相关的值,比如:

 
 
HOME=C:\Documents and Settings\My Documents

  环境变量让你在它运行的时候将信息传送到进程,因此,重设置就是自动的。比如,你可以固定一个环境变量,它可以在错误信息写入到文件的时候发挥作用,它可以不让这个错误破坏进程。

了解环境变量

为了可以访问环境变量,使用getenv()函数:

char * getenv(const char * str); //declared in <cstdlib>

只要成功,getenv()返回一个C串,其中包含了变量的值;否则,它将返回空。比如:

#include <cstdlib>
#include <iostream>
int main()
{
const char * path = std::getenv("PATH");
if (path)
 std::cout<<"PATH is: "<< path <<std::endl;
else
 std::cout<<"PATH isn't defined"<<std::endl;
}

定义一个环境变量

为了定义一个环境变量,使用putenv()函数:

int putenv(const char * var);

尽管ANSI/ISO标准不能定义这个函数,POSIX和Windows实现在<cstdlib>定义他,所以,它是非常方便的。

参数var必须在表格"VAR=VAL"中。putenv()添加VAR到当前的环境并分配VAL值到其中。如果var已经存在,putenv()可以不考虑。如果你不想考虑一个存在值的可能性,在调用putenv()的之前调用getenv()



============================================
方法2



这个脚本用于自动设置环境变量。把代码拷贝,另存为javaEnv.bat。安装完Java 2 SDK之后,开一个命令行窗口运行javaEnv java2SDKDir即可(java2SDKDir是你的java的安装目录,不带最后的\)。


  @echo off
  IF EXIST %1\bin\java.exe (
     rem 如输入正确的 Java2SDK 安装目录,开始设置环境变量
     @setx JAVA_HOME %1
     @setx path %path%;%JAVA_HOME%\bin
     @setx classpath %classpath%;.
     @setx classpath %classpath%;%JAVA_HOME%\lib\tools.jar
     @setx classpath %classpath%;%JAVA_HOME%\lib\dt.jar
     @setx classpath %classpath%;%JAVA_HOME%\jre\lib\rt.jar
     @echo on
     @echo Java 2 SDK 环境参数设置完毕,正常退出。
   )  ELSE (
         IF "%1"=="" (
        rem 如没有提供安装目录,提示之后退出
        @echo on
        @echo 没有提供 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。
        ) ELSE (
          rem 如果提供非空的安装目录但没有bin\java.exe,则指定的目录为错误的目录
          @echo on
          @echo 非法的 Java2SDK 的安装目录,不做任何设置,现在退出环境变量设置。
        )
  )


  请打开另外一个窗口测试
  运行
  path
  set classpath

posted @ 2006-04-26 09:24  观我生,君子无咎  阅读(695)  评论(0)    收藏  举报