
正文
java代码调用环境变量 java指定环境变量
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何在java程序设置环境变量
在java程序设置环境变量:
String path = System.getProperty("java.library.path");
path = path+"你要添加的路径";
System.setProperty("java.library.path",path);
问题补充:当在一个运行进程中设置环境变量,只可以运用于当前进程,所以。。谢谢。从网上搜到可以使用jna,调用 本地方法的方式 实现。因为c/c++实现了setenv()方法
小卓SUN 写道
自己写个batch文件,直接runtime调用啊
runtime.exec(xxx.bat, "路径")
相关问答
Q1: java调用时的环境变量怎么设置?
import 在java中是引入一个包的意思,你上面的第二和第三个程序引入了Car,SportsCar这两个包并且调用了下包下的Car.class,SportsCar.class这两个文件。在编译的时候必须使用java -d 盘符:/路径 文件名.java 并且在程序的第一行用package定义包名。
如果我写的你看不明白,看你参考书上的《java 包的定义和使用 》这一章节
Q2: jre环境变量配置
jre环境变量配置
JDK安装完成后java代码调用环境变量,就进行环境变量java代码调用环境变量的设置。
1、右击“我的电脑”-;“属性”,选择“高级”,点击“环境变量”的按钮。
2、在系统变量里,点击“新建”,在变量名输入java_home ;变量值输入D:\Program Files\Java\jdk1.6.0_10 ,点击确定。
同上,新建一个系统变量,变量名为:classpath;变量值:.;%java_home%\lib;%java_home%\lib\ tools.jar ,点击确定。
在系统变量中,点击Path变量,点解编辑,在变量值中添加:%java_home%\bin;%java_home%\jre6\bin; ,点击确定。
3、测试:
新建一个txt文本,复制以下代码:
public class test
{
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
保存后续命为.java的文件,且文件名为test.java。
打开命令提示符,输入F: 回车,输入javac test.java 回车,输入java test 输出结果为:Hello World!
如何配置环境变量
配置环境变量的方法:我的电脑右击——属性——高级系统设置——环境变量
具体步骤如下:
1. 在我的电脑上右击-属性-高级系统设置
2. 点击右下角“更改设置”。
3. 在弹出的窗口中点击右下角的“环境变量”按钮。
4. 接下来可以在用户环境变量或者系统环境变量中配置具体的环境变量,点击编辑新加环境变量,注意用分号分隔开。
5. java环境变量配置:
a、在path后面新加JDK安装路径下面的bin文件夹的路径例如:";D:\JDK\bin"
b、新建javahome环境变量,值为JDK的安装路径例如:"D:\JDK"
c、新建classpath环境变量,这个变量值有两个为"D:\JDK\lib\tools.jar;D\JDK\lib\td.jar"
jre环境变量配置
JDK安装完成后,就进行环境变量的设置。
1、右击“我的电脑”-“属性”,选择“高级”,点击“环境变量”的按钮。2、在系统变量里,点击“新建”,在变量名输入java_home ;变量值输入D:\Program Files\Java\jdk1.6.0_10 ,点击确定。
同上,新建一个系统变量,变量名为:classpath;变量值:.;%java_home%\lib;%java_home%\lib\ tools.jar ,点击确定。在系统变量中,点击Path变量,点解编辑,在变量值中添加:%java_home%\bin;%java_home%\jre6\bin; ,点击确定。
3、测试:新建一个txt文本,复制以下代码:public class test{public static void main(String[] args){System.out.println("Hello World!");}}保存后续命为.java的文件,且文件名为test.java。打开命令提示符,输入F: 回车,输入javac test.java 回车,输入java test 输出结果为:Hello World!。
jre需要配置到环境变量中吗java代码调用环境变量?
如果是刚安装的jdk,哈,兄弟,你其实什么都不用配,也正常。jdk1.4以后的版本都不用配任何东西,安装了就能用。网上那些资料早过气了。
上面给答案的兄弟或者其它很多人,都是看了网上的资料,然后就去配环境变量,然后调试,哈,行了,以为真的就需要这样配了,笑死人了。
其中的道道是这样的:
所谓环境变量可以这样理解,把操作系统理解为一个平常的系统,它当调用一个api接口的时候,需要输入参数,就像我们写java代码一样。
但我们也知道,一个功能不可能只有一种方法。除了设置环境变量来传递参数之外,还可以有其java代码调用环境变量他的办法,Jdk5及以后的版本就采取了其它的做法。
当然,你不是安装的JDK,而是拷贝的别人已安装好的,就需要配置环境变量了。
如果你平时都是用eclipse等IDE来写代码,而不是文本文件,就只需要在eclipse里面配置就行了。
再说说JDK与JRE的却别,很多人都不知道。
JDK是用来编译是用来调用的库,比如java.lang,java.util等都在JDK里面的
JRE是用来解释的调用的。如果你是一个用户,你只需要安装JRE就行了
如果你是开发者,你只需要安装JDK。
JDK里面包含了jre,你可以去JDK的目录下面看看,不是有个JRE吗?
那你说,你配置环境变量是编译的时候用,还是用来解释的时候用的?
现在你知道环境变量里面是否需要配置JRE了吧,o(∩_∩)o。哈哈
如何配置jdk和jre的环境变量
安装过程同其他软件安装过程一样,不多说,值得一提的是JDK安装完成之后,会要求安装jre,因为现在JDK和jre都打包到一起了,直接选择安装
接下来配置环境变量,右击桌面上计算机,点击属性,然后选择高级属性
在弹出的对话框内选择环境变量,进行编辑,路径和名称
新建系统变量,名称:JAVA_HOME,路径:JDK的安装路径,找到JDK的安装目录,然后复制路径,粘贴过来就好。
6
名称:CLASSPATH路径:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(由于这个引用的是相对路径,直接复制过去就可以了,注意前面的"."和";")
7
然后找到path变量,点击编辑粘贴:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
由于前面有其他变量,注意用";"隔开。
jre6怎么设置环境变量啊,高手给讲下!!!!!
首先说明一下 环境变量不是设置jre 而是jdk 你的jre6旁边是不是有jdk文件夹?
右击我的电脑-;属性-;高级-;环境变量-;用户变量中单击[新建(N)]添加以下环境变量
(1)右击我的电脑-;属性-;高级-;环境变量-;用户变量中单击[新建(N)]添加以下环境变量
变量名:JAVA_HOME
变量值:找到JDK的安装目录,全部打开一直找到并打开jdk1.6.0这个文件夹,然后直接复制文件的地址(D),这个文件地址就是JAVA_HOME变量值 例如我的是
D:\Program Files\Java\jdk1.6.0_10"(自己看一下 你的应该是C:\Program Files\Java\jdk1.6.0\吧)
(2)CLASSPATH
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(注前面的点号和分号一定不能丢,还有中间的,后面的分号也不要丢了 这个可以直接照我的复制就行了)
(3 )变量名:PATH(如果你用系统变量 不要把系统的覆盖了 加在前面就行了)
变量值:%JAVA_HOME%\bin;
这样就好了 试验一下吧
开始-;所有程序-;附件-;命令提示符
打入 javac 回车
再打入java 回车 是不是两次都有一大堆参数? 那就恭喜你 完事儿了
java JRE安装以及环境变量的配置怎么弄
安装JDK 选择安装目录 安装过程中会出现两次 安装提示 。第一次是安装 jdk ,第二次是安装 jre 。建议两个都安装在同一个java文件夹中的不同文件夹中。(不能都安装在java文件夹的根目录下,jdk和jre安装在同一文件夹会出错)
如下图所示
1:安装jdk 随意选择目录 只需把默认安装目录 \java 之前的目录修改即可
2:安装jre→更改→ \java 之前目录和安装 jdk 目录相同即可
注:若无安装目录要求,可全默认设置。无需做任何修改,两次均直接点下一步。
安装完JDK后配置环境变量 计算机→属性→高级系统设置→高级→环境变量
系统变量→新建 JAVA_HOME 变量 。
变量值填写jdk的安装目录(本人是 E:\Java\jdk1.7.0)
系统变量→寻找 Path 变量→编辑
在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)
6
系统变量→新建 CLASSPATH 变量
变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)
系统变量配置完毕
7
检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)
若如图所示 显示版本信息 则说明安装和配置成功。
JDK环境变量的配置
以jdk1.4.2_09为例,你可以根据你的jdk版本号及安装路径进行相应的修改在这里我将jdk1.4.2_09直接安装在C盘下,即C:\j2sdk1.4.2_09下面为详细配置:1.JAVA_HOMEJAVA_HOME指向的是JDK的安装路径在该路径下你应该能够找到bin、lib等目录如我的设置就应该为JAVA_HOME=C:\j2sdk1.4.2_09;2.PATH设置PATH的目的是为了指向JDK的bin目录在bin目录下放的是各种编译执行命令如我的设置就应该为PATH=C:\j2sdk1.4.2_09\bin;C:\j2sdk1.4.2_09\jre\bin;需要说明,系统本身就有PATH环境变量,只要把C:\j2sdk1.4.2_09\bin;C:\j2sdk1.4.2_09\jre\bin;直接放到后面即可,中间使用";"隔开3.CLASSPATHCLASSPATH设置类的路径,也最为重要如我的设置就应该为CLASSPATH=.;C:\j2sdk1.4.2_09\lib;C:\j2sdk1.4.2_09\lib\tools.jar;最前面加上"."和";",意为首先在当前目录中查找以上配置均是在我的JDK安装目录为C:\j2sdk1.4.2_09前提下进行的你可以根据实际的安装目录进行相应的修改配置方法:右击"我的电脑"——"属性",在弹出的"系统属性"选项面板中选择"高级"选项卡,点击"环境变量"按钮,弹出"环境变量"面板,在用户变量或者系统变量中进行相应的配置即可注意:用户变量只对当前登录本机的用户有效,而系统变量对所有登录本机的用户均有效,你可以根据自己的喜好在相应的变量环境中进行配置所有环境变量配置好后,在命令窗口中直接执行java或者javac命令,出现了相应的信息,说明配置成功。
我安装的是jre6,怎么设置环境变量?
1。 变量名为JAVA_HOME,内容为"这里面写你的jdk的安装后的绝对路径"
2。 变量名为CLASS,内容为".;%JAVA_HOME%\jib\tools.jar" 注意:内容里面的那个是分号,不是冒号;它前面的是点。
3。 变量名为Path, 内容为";%JAVA_HOME%\bin" 注意:内容里面的那个是分号;还有这个变量名已经存在,你只需在内容的最后面添加即刻(也就是说,这个环境你只需编辑,而不用像前面那样新增);并且这个变量你一定不要改动里面原先存在的内容,动了的话,有可能系统启动不了,也有可能你的某个软件不能启动了
Q3: 如何用Java程序改变系统环境变量
最近在做一个项目的时候,遇到一个要在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/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"));
}
}
java代码调用环境变量的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java指定环境变量、java代码调用环境变量的信息别忘了在本站进行查找喔。







