环境变量的自动配置
一个环境变量由两个串组成,这两个串由等号分开。最左边串是变量自身,最右边的串是和它相关的值,比如:
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