java环境变量设置怎么配置

Python010

java环境变量设置怎么配置,第1张

工具/原料

环境变量

JDK 

方法/步骤

1、首先下载安装JDK安装包

2、打开我的电脑--属性--高级--环境变量

3、新建系统变量JAVA_HOME 和CLASSPATH

变量名:JAVA_HOME 

变量值:C:\Program Files\Java\jdk1.7.0

变量名:CLASSPATH 

变量值:.%JAVA_HOME%\lib\dt.jar%JAVA_HOME%\lib\tools.jar

其中变量值为你自己安装jdk的文件目录这里要注意。

4、选择“系统变量”中变量名为“Path”的环境变量,双击该变量,把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中,并使用半角的分号和已有的路径进行分隔。 

变量名:Path 

变量值:%JAVA_HOME%\bin%JAVA_HOME%\jre\bin

这是java的环境配置,配置完成后直接启动eclipse,它会自动完成java环境的配置

5、现在测试环境变量的配置成功与否。在DOS命令行窗口输入“JAVAC”,输出帮助信息即为配置正确。如图:

最近在做一个项目的时候,遇到一个要在java程序中改变linux的PATH环境变量的问题。我们知道在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语言中调用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/StringLjava/lang/StringI)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"

#include<stdio.h>

#include<stdlib.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"

#include<stdio.h>

#include<stdlib.h>

#include<string.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"))

}

}

一、Windows下安装JDK

首先下载JDK 5.0(JDK 5.0的下载页面为:http://java.sun.com/j2se/1.5.0/download.jsp); 然后运行JDK 5.0安装程序jdk-1_5_0_06-windows-i586-p.exe,安装过程中所有选项保持默认;最后配置JDK的环境变量:在“我的电脑”上点右键—>“属性”—>“高级”—>“环境变量(N)”。

在“系统变量”中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击“编辑”,不存在则点击“新建”。

----------------JAVA----------------

JAVA_HOME

C:\Program Files\Java\jdk1.6.0_05

注意:JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径,此路径下包括lib,bin,jre等文件夹。

-------------------------------

Path

%JAVA_HOME%\bin

在系统变量Path的值的最前面加入.

否则可能在运行时,系统选择部署在前面的jre环境。

注意:Path使得系统可以在任何路径下识别java命令

-------------------------------

CLASSPATH

.%JAVA_HOME%\lib

注意: 点好表示当前目录,不能省略

注意:CLASSPATH为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别

-------------------------------

测试

“开始”->“运行”,键入“cmd”,

键入命令“java -version”,出现下图画面,说明环境变量配置成功。

---------------TOMCAT----------------

CATALINA_HOME

C:\Program Files\Apache Tomcat 4.0

-------------------------------

Path

%CATALINA_HOME%\bin

在系统变量Path的值中"%JAVA_HOME%\bin"的后面加入以下内容:

%CATALINA_HOME%\bin

-------------------------------

JAVA_HOME:C:\Program Files\Java\jdk1.5.0_06

CATALINA_HOME:D:\jakarta-tomcat-5.0.30

CLASSPATH:.%JAVA_HOME%\lib%CATALINA_HOME%\common\lib

Path:%JAVA_HOME%\bin%CATALINA_HOME%\bin%SystemRoot%\system32%SystemRoot%%SystemRoot%\System32\Wbem

其中TOMCAT_HOME(OR CATALINA_HOME)看tomcat的版本选择设置。

二、Linux下安装JDK

1、下载程序

到SUN公司的JAVA网站下载Linux版本的JDK程序j2sdk-1_4_2_08-linux-i586-rpm.bin(其他版本的程序命名会有所不同)。

网址是:java.sun.com

2、安装程序

以root身份登录Linux系统,进入已下载的jdk安装文件所在的文件夹,输入命令chmod a+x j2sdk-1_4_2_08-linux-i586-rpm.bin,给当前用户添加执行的权限。

输入以下命令,安装jdk:

./j2sdk-1_4_2_08-linux-i586-rpm.bin

此步完成后,会生成j2sdk-1_4_2_08的系统文件夹,将该文件夹复制到 /usr/local/ 目录下。

3、设置环境变量

在root目录下,编辑 .bash_profile 文件,在文件中加入:

JAVA_HOME= /usr/java/jdk1.4.2_08

CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib

PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

export JAVA_HOME PATH CLASSPATH

重新登陆后测试。

为了能够让所用用户使用Java,通过编辑/etc/profile将以上的环境变量配置添加到该文件。

4、测试

运行:java -version

返回

java version "1.4.2_08"

Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b02)

Java HotSpot(TM) Client VM (build 1.4.2_08-b02, mixed mode)

为正确配置。

..........................................................................

如果你对java感兴趣的话,可以学习java,关于如何学习java,我刚才看到一篇很不错的文章,是一个农民工介绍自己如何自学java,并找到Java的工作,里面介绍了他的学习方法和学习过程,希望对你有帮助。

我是一名地地道道的农民工,生活在经济落后的农村,有一个哥哥和一个弟弟,父母都是地道的农民,日出而作,日落而息,我从小到大学习一直很好,从小学到高一都,成绩在全级一直名列前茅,这样我也顺利了考上省的重点高中,然而,每个学期开学是家里最为难的时候,每次交学费都让父母发愁许久,家里为了给我筹钱读书,都借了不少钱,才让我读上高中。我知道我读到高中家里已经欠了好多债,为了减轻家里的负担,我选择了退学。

2009年我高一退学,为了给家里还债,干过建筑工地的小工,搞过塑料制品加工,送水工等等。很工资都很低,一个月也就1000多,加上加班费一个月能拿2000多一点,我每个月都向家里寄回800-1000元,到了2011年末,一次偶然的机会我接触了Java,听说Java的前景挺不错,工资相对于我一个农民工来说简直是天文数字,于是我在新华书店买了几本Java的书,尽管白天辛苦工作,晚上回来还是坚持看书,但有于基础太差很多都很不明白,但还是坚持看,一有看1-2个小时Java的书,看着看着许多基础都慢慢的学会了,但那些比较难的还是看不懂,后来还买了有些关于框架的书,还是看不懂,这样断断续续的持续了半年多,觉得自己Java的基础都差不多懂了,但框架还是看不懂,还有最缺的项目经验,看了很多招聘Java程序员的简介都要项目经验,相对我一个农民工来连框架都弄不明白,想找一份Java工作对我来说简直是奢侈。我只想学Java,并不敢想以后能从事Java的工作。

有一次,在百度上看到一篇让我很鼓舞的文章,是一个Java高手介绍在没有基础的朋友怎么自学入门Java,文章写的很好,包含了如何学习,该怎么学习,他提到一个方法就是看视频,因为看书实在太枯燥和费解的,不少是我们也看不懂,这点我真的很认同,我自己看书都看了很久才学会基础。曾经有想过参加培训,但是上万元的培训费让我望而却步,我工资这么低,每个月还有向家里汇钱,加上城市消费比较高,虽然每个月只有几百剩下,但是相对于上万万学费和四个月的吃住费用逼我连想不敢想。 于是我决定看视频,我就去搜索Java的视频,虽然我零星的找到一些Java的视频,但是都不系统。最重要连项目都没有。后来我找到一份很好的视频,是IT学习联盟这个网站一套视频叫<<零基础Java就业班>>的教程还不错,很完整。还赠送11个顶级企业项目。价格很合理,于是我买下来。

于是开始了我的自学Java的路,收到光盘后,我就开始学习,刚开始学习还不错,是从零基础教起,老师幽默风趣而又轻松的课堂教课,使我发现原来学习JAVA并不是一件很难的事情。因为我本来基础还不错,前面的基础看一篇我就过去了,到了框架,我觉不又不是很难,可能老师太牛了,他能把复杂的问题讲的比较通俗易懂,有些难点的地方我还是连续看了五六次,把他弄懂。每天下午6点下班后,吃了饭,马上跑回家。看视频,买了几本笔记本。当时,为了编程还花几百元了台二手的台式电脑,配置一般,但编程是足够的。一边看视频,一边记笔记,把重点都记下来,还一边跟着老师敲代码,为了能尽早学会Java。每天都坚持学5-6个小时。经常学到晚上一点多才睡觉。星期六,日不用上班,每天7点多起床,学到晚上11,12点。那段时间特别辛苦,特别累。在学习Java的三个多月里,除了吃饭睡觉工作,剩余的时间都在学习,因为我知道自己的计算机基础不是很好,也没有学过什么计算机,只是学了些Java基础,相对于那些科班的人来说我要比他们付出更多的努力。我只能咬紧牙关,坚持下去,我不能放弃,我要完成我的梦想,我要让我的家人过上好日子。终于三个多月后我把Java教程里的内容和项目都学完了,在学项目的过程中我发现项目特别重要,他能把你学过的知识全部联系起来,能更好的理解你所学的知识。还有学习过程中,动手很重要,要经常跟着老师动手敲,动手吧,跟着做,一行一行的跟着敲,再试着加一些自己的功能,按照自己的思路敲一些代码,收获远比干听大的多。 如果遇到暂时对于一些思路不能理解的,动手写,先写代码,慢慢你就会懂了。这套视频还赠送了11个顶级企业项目,对于我没有任何经验的人来说,这个太重要了,还有在学习项目是提升能力最快的方法。项目能把所有的知识点全都连到一起了,不再是分散的,而是形成一个整体了。那种感觉是仅仅深入钻研知识点而不写真实项目的人所不能体会的。一个项目就是一根绳子可以把大片的知识串到一起。 就这样,我用了两个月也把项目给学完了。其实学完教程差不错就达到就业水平,但是我可能觉得自己学历低还是把那11个顶级企业项目才去找工作。

接着我就到51job疯狂的投简历,因为我的学历问题,初中毕业,说真的,大公司没有人会要我。所以我头的都是民营的小公司,我希望自己的努力有所回报。没有想过几天后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比价严格,需要有一年的项目经验,所以我没有被选中。 后来陆续面试了几加公司,终于功夫不负有心人,我终于面试上了一家民营的企业。公司规模比较小,我的职务是Java程序员。我想我比较幸运,经理看中我的努力,就决定吕勇我,开的工资是3500一个月,虽然我知道在北京3500只能过温饱的生化,但是我想我足够了,比起以前的工资好了些,以后可以多寄些钱回家。我想只要我继续努力。我工资一定会翻倍的。 把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有自卑,我们不比别人笨,只有我们肯努力,我们一样会成功。

………………………………………………………………