
正文
java环境变量测试代码 java环境变量配置测试
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
cmd查看环境变量 Java环境变量怎么设置
JAVA环境变量设置
一、下载JDK。
下载后是一个可执行程序,双击安装,安装路径为C:\Program Files\Java\jdk1.6.0_22\(当然,其他路径也可以),如下图:
二、设置环境变量。
我的电脑点右键,选择“属性”,选择“高级”标签,进入环境变量设置,设置步骤如下:
(1)我的电脑点右键,选择“属性”,选择“高级”标签。
(2)进入“环境变量”。
(3)可以看到上图的界面中有“Administrator的用户变量”和“系统变量”两个列表框,建议设置在“系统变量”中,因此点击“系统变量”下面的“新建”按钮,在弹出的窗口中的“变量名”框中填入:JAVA_HOME;“变量名”框中填入JDK的安装路径;如下图:
(4)点击“确定”按钮,添加“JAVA_HOME”成功,继续点击“新建”按钮,在弹出的窗口中的“变量名”框中填入:classpath;“变量值”框中填入:.;jdk安装目录\lib\tools.jar;jdk安装目录\lib\dt.jar;如下图:
(5)点击“确定”按钮,添加“classpath”成功。在“系统变量”列表框中找到“Path”这行(如果列表中没有,则直接新建),如下图:
(6)点击“编辑”按钮,在弹出的窗口中的 “变量值”框中添加:.; jdk安装目录\bin;
(7)点击“确定”à“确定”à“确定”;完成环境变量设置。
(8)测试环境变量是否配置正确。
开始-运行-输入cmd-回车进DOS-DOS命令下输入:java –version 回车,若配置成功,系统输出JDK的版本信息,如下图:
相关问答
Q1: 如何检测java环境变量是否配置正确
点击开始--运行--输入cmd,点击确定。
在命令行窗口输入javac,出现下图所示:
再次输入java,出现下图所示:
最后输入java -version,出现下图所示:
如果出现上面的前两个图片显示的内容就说明jdk的环境变量配置是正确的,第三个命令是检查当前电脑中使用的jdk的版本及位数。
Q2: 如何用Java程序改变系统环境变量
最近在做一个项目java环境变量测试代码的时候java环境变量测试代码,遇到一个要在java程序中改变linuxjava环境变量测试代码的PATH环境变量的问题。java环境变量测试代码我们知道在linux中PATH环境变量保存在用户根目录下的“.bashrc”和“.bash_profile这两个隐藏文件中。用户登录的过程中便会把这两个文件中的PATH路径记录的该用户的shell中。如果用户已经登录,这时可通过命令 export PATH=add_path:$PATH来增加一个路径为add_path的路径。但通过此种方式增加的PATH路径只在当前shell中有效(也就是说,当用户通过另一个shell登录时,PATH又变成了原来的值)。在windows中用户已经登录的情况下则是通过命令set来更改环境变量的。
Java语言是一门跨平台的语言,具有一次编写到处运行的特点。在java的1.0版本中有System.getenv(String key)可以来取得操作系统的环境变量,但由于getenv()具有与操作系统紧密相关的特性,这与java的跨平台的跟本特征相冲突,所以在java1.2中该方法被不推荐使用。而程序员在编程的过程中经常需要用到getenv(),所以在java1.5中getenv()又重新回来了。虽然可以通过getenv()来取得系统的环境变量,但是却没有与getenv()相对应的setenv()函数来改变系统的环境变量。
C语言是一门与平台相关的语言,在多年的发展中积累了数量相当可观的库函数,在stdlib.h函数库中就有getenv(参数省略)与setenv(参数省略)来获取和改变系统的环境变量,这就给我们一个提示java环境变量测试代码:能不能在java语言中调用C语言的函数库?JNI(java本地接口)正给了我们这样一个选择。
1.首先生成ChangeEnv.java文件
/**
* @author sgh
* @version 1.0.0 06/07/21
*/
public class ChangeEnv {
/**
* @param args
*/
static {
try{
System.loadLibrary("change_env");//声明欲加载的动态链接库
}
catch(UnsatisfiedLinkError e ){
System.err.println("Can not load library "+e.toString());
}
}
public native void setEnv(String name ,String value, int replace);//声明一个本地调用接口
}
说明:
1. 动态链接库在windows中是.dll文件,在linux中则是.so文件,但在System.loadLibrary("change_env")中不需要把后缀写出 ,程序会自己判断。
2. 本地接口声明方式为在普通函数前加native关键字
2. 编译java文件 :Javac ChangeEnv.java
3. 使用命令 javah ChangeEnv 生成ChangeEnv.h文件(ChangeEnv.h文件由程序自动生成,程序员不需要作任何改动)
/* DO NOT EDIT THIS FILE - it is machine generated */
#include jni.h
/* Header for class ChangeEnv */
#ifndef _Included_ChangeEnv
#define _Included_ChangeEnv
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: ChangeEnv
* Method: setEnv
* Signature: (Ljava/lang/String;Ljava/lang/String;I)V
*/
JNIEXPORT void JNICALL Java_ChangeEnv_setEnv
(JNIEnv *, jobject, jstring, jstring, jint);
#ifdef __cplusplus
}
#endif
#endif
说明:
1.JNIEXPORT void JNICALL Java_ChangeEnv_setEnv
(JNIEnv *, jobject, jstring, jstring, jint)是本地接口函数的声明需要在.cpp文件中实现它
4.编写ChangeEnv.cpp
#include"ChangeEnv.h"
#includestdio.h
#includestdlib.h
//与ChangeEnv.h中函数声明相同
JNIEXPORT void JNICALL Java_ChangeEnv_setEnv(JNIEnv * env, jobject obj, jstring name, jstring value, jint replace)
{
////从instring字符串取得指向字符串UTF编码的指针
const char * name_char =(const char *) env-GetStringUTFChars(name ,JNI_FALSE);
const char * value_char =(const char *) env-GetStringUTFChars(value ,JNI_FALSE);
//实际调用的C库函数
setenv(name_char,value_char,replace);
//通知虚拟机本地代码不再需要通过name_char访问Java字符串,否则会
//造成内存泄露
env-ReleaseStringUTFChars(name,(const char *)name_char);
env-ReleaseStringUTFChars(value,(const char *)value_char);
return ;
}
5.编译ChangeEnv.cpp文件,生成libchange_env.so文件
gcc -I/home/disk4/sgh/sgh/jrockit/include -I/home/disk4/sgh/sgh/jrockit/include/linux -shared -o libchange_env.so ChangeEnv.cpp
说明:
1. Linux下链接库名称必须以lib开头,否则会无法识别
6. 编写测试程序test.java
import java.io.InputStreamReader;
import java.io.LineNumberReader;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(System.getenv("PATH"));//打印改变之前的PATH路径
String pathPer = System.getProperty("java.library.path");
pathPer+=":.";
System.setProperty("java.library.path",pathPer);//把当前目录加到动态链接库路径中
ChangeEnv changePath = new ChangeEnv ();//生成一个ChangeEnv对象
changePath.setEnv("PATH","$PATH:/home/disk4/sgh/sgh/soft/slurm34/bin:/home/disk4/sgh/sgh/soft/slurm34/sbin",1);
System.out.println(System.getenv("PATH"));//打印改变之后的PATH路径
}
}
说明:
1. 可以看到PATH路径发生了变化
JNI在windows下的使用
既然所有的.h ,.cpp文件都已写好,我们不防顺便编译以下windows下的动态链接库.dll文件。
这时我们发现在windows下的vc环境中没有setenv(char * name ,char * value ,int replace),而只有putenv(char * key_value)函数,所以我们必须重写ChangeEnv.cpp,为了使ChangeEnv.class对外接口保持一致性,所以我们没有改写ChangeEnv.java中本地函数借口的声明。
1. 重写ChangeEnv.cpp函数
#include"ChangeEnv.h"
#includestdio.h
#includestdlib.h
#includestring.h
//与ChangeEnv.h中函数声明相同
JNIEXPORT void JNICALL Java_ChangeEnv_setEnv(JNIEnv * env, jobject obj, jstring name, jstring value, jint replace)
{
if(replace==0)//如果replace==0表示不发生置换,直接退出
return ;
////从instring字符串取得指向字符串UTF编码的指针
const char * name_char =(const char *) env-GetStringUTFChars(name ,JNI_FALSE);
const char * value_char =(const char *) env-GetStringUTFChars(value ,JNI_FALSE);
//实际调用的C库函数,把环境变量写成key=value格式
char * key_value=(char *)name_char;
strcat(key_value, "=");
strcat(key_value, value_char);
putenv(key_value);
//通知虚拟机本地代码不再需要通过name_char访问Java字符串,否则会
//造成内存泄露
env-ReleaseStringUTFChars(name,(const char *)name_char);
env-ReleaseStringUTFChars(value,(const char *)value_char);
return ;
}
2. 在vc6中新建一个动态链接库工程,添加ChangeEnv.h和ChangeEnv.cpp到该工程中去
3. 在“工具”----〉“选项-”----〉“目录”中添加java的include路径
C:\Program Files\Java\jdk1.5.0_06\include和C:\Program Files\Java\jdk1.5.0_06\include\win32
4. 单击“运行”,把生成的change_env.dll拷贝到ChangeEnv.java所在的工程目录中
5. 在ChangeEnv.java所在工程中新建一个测试程序test.java
import java.io.InputStreamReader;
import java.io.LineNumberReader;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
ChangeEnv changePath = new ChangeEnv();
changePath.setEnv("PATH", "%PATH%;c:\\", 1);
System.out.println(System.getenv("PATH"));
}
}
Q3: java环境变量配置
1.安装j2sdk以后,需要配置一下环境变量,右击我的电脑-属性-高级-环境变量-用户变量中单击[新建(N)]添加以下环境变量(假定你的j2sdk安装在D:\Program Files\Java\jdk1.5.0_10)
(为了不出错,最好是找到J2SDK的安装目录,全部打开一直找到并打开jdk1.5.0_10这个文件夹,然后直接复制文件的地址(D),这个文件地址就是JAVA_HOME变量值如“D:\Program Files\Java\jdk1.5.0_10”)
注:新建的对话框上面是显示"新建用户变量"而不是“新建系统变量”
在变量名中填"JAVA_HOME"
在变量值中填"D:\Program Files\Java\jdk1.5.0_10"
新建的环境变量为以下三个,分别新建好后就可以测试一下了
JAVA_HOME
D:\Program Files\Java\jdk1.5.0_10
PATH
D:\Program Files\Java\jdk1.5.0_10\bin
CLASSPATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(注前面的点号和分号一定不能丢,还有中间的,后面的分号也不要丢了)
测试:
打开记事本,将以下程序复过去贴
import javax.swing.*;
class Greetings{
public static void main(String[] args){
String fullName;
fullName=JOptionPane.showInputDialog(null,"What is your name?");
JOptionPane.showMessageDialog(null,"Nice to meet you,"+fullName+".");
System.exit(0);
}
}
在文件菜单中选另存为
文件名为Greetings.java(注意一定记得后辍是".java",文件名和你所写代码的类名一致)
保存类型为"所有\全部"(注意一定要选"所有文件" 或"全部文件",txt的默认是"文本文档"所以保存时一定要改)
先择一个目录,最好是在一个比较简单的目录下,如D盘,我是保存在"D:\suer" )(suer是我自己建的文件夹.读者也可以不用建)然后确定就可以了.
3.开始-所有程序-附件-命令提示符
这时就已打开了DOS黑窗口了,默认的目录是在C:\Documents and Settings\Administrator(当然可能各个电脑系统不一样,但如果这时的目录不是我们保存程序代码的目录,那么
我们要改为刚才保存的java文件所在的目录,
直接在DOS窗口输入“D:”安回车(注:其中的冒号不能丢了)
这时我们就看到了目录改为了“D:\”
如果你是保存在D盘,那么就可以输入以下命令
javac Greetings.java
这是编译命令,它将完成编译刚才所写的程序,如果编译没有错误那么目录会依然是“D:\”(如果有错的话,系统就会提示,这时你的环境配置就有问题了。)
如果没错这时你就可以运行你的程序了,输入以下命令
java Greetings
这是运行命令,如果没有错的,系统将会弹出一个窗口,英语提示你输入你的名,到了这一步就说明你的环境配置是ok的了!
试试吧
关于java环境变量测试代码和java环境变量配置测试的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







