如何在Java中获取环境变量的值

如何在Java中获取环境变量的值,第1张

当程序中需要使用与 *** 作系统相关的变量(例如:文件分隔符、换行符)时,Java提供了System类的静态方法getenv()和getProperty()用于返回系统相关的变量与属性,getenv方法返回的变量大多于系统相关,getProperty方法返回的变量大多与java程序有关。

系统属性和环境变量都是名称与值之间的映射。两种机制都能用来将用户定义的信息传递给 Java进程。环境变量产生更多的全局效应,因为它们不仅对Java子进程可见,而且对于定义它们的进程的所有子进程都是可见的。在不同的 *** 作系统上,它们的语义有细微的差别,比如,不区分大小写。因此环境变量更可能有意料不到的副作用。程序中尽可能使用系统属性。环境变量应该在需要全局效应的时候使用,或者在外部系统接口要求使用环境变量时使用(比如 PATH)。

1、环境变量getenv() :用于获取当前系统环境的字符串映射视图;测试代码及运行结果如下:

publicclass Test {

publicstaticvoid main(String[] args) {

Map<String, String> map = Systemgetenv();

for(Iterator<String> itr = mapkeySet()iterator();itrhasNext();){

String key = itrnext();

Systemoutprintln(key + "=" + mapget(key));

}

}

}

USERPROFILE :用户目录

USERDNSDOMAIN :用户域

PATHEXT :可执行后缀

JAVA_HOME :Java安装目录

TEMP :用户临时文件目录

SystemDrive :系统盘符

ProgramFiles :默认程序目录

USERDOMAIN :帐户的域的名称

ALLUSERSPROFILE :用户公共目录

SESSIONNAME :Session名称

TMP :临时目录

Path :path环境变量

CLASSPATH :classpath环境变量

PROCESSOR_ARCHITECTURE :处理器体系结构

OS : *** 作系统类型

PROCESSOR_LEVEL :处理级别

COMPUTERNAME :计算机名

Windir :系统安装目录

SystemRoot :系统启动目录

USERNAME :用户名

ComSpec :命令行解释器可执行程序的准确路径

APPDATA :应用程序数据目录

2、系统属性getProperty() :当前的系统属性。测试代码及运行结果如下:

javaversion Java :运行时环境版本

javavendor Java :运行时环境供应商

javavendorurl :Java供应商的 URL

javahome :Java安装目录

javavmspecificationversion: Java虚拟机规范版本

javavmspecificationvendor :Java虚拟机规范供应商

javavmspecificationname :Java虚拟机规范名称

javavmversion :Java虚拟机实现版本

javavmvendor :Java虚拟机实现供应商

javavmname :Java虚拟机实现名称

javaspecificationversion:Java运行时环境规范版本

javaspecificationvendor:Java运行时环境规范供应商

javaspecificationname :Java运行时环境规范名称

javaclassversion :Java类格式版本号

javaclasspath :Java类路径

javalibrarypath :加载库时搜索的路径列表

javaiotmpdir :默认的临时文件路径

javacompiler :要使用的 JIT编译器的名称

javaextdirs :一个或多个扩展目录的路径

osname : *** 作系统的名称

osarch : *** 作系统的架构

osversion : *** 作系统的版本

fileseparator :文件分隔符

pathseparator :路径分隔符

lineseparator :行分隔符

username :用户的账户名称

userhome :用户的主目录

userdir:用户的当前工作目录

做网站有时会处理一些上传下载的文件 可能会用到加解密功能 以下是一个加解密方法

Java代码

import java io File;

import java io FileInputStream;

import java io FileOutputStream;

import java io IOException;

import nf Conf;

import mon time TimeHandler;

/

加解密单元

@author lupingui

: :

/

public class EncryptDecrypt {

//加解密KEY 这个不能变动 这里可以由任意的字符组成 尽量用特殊字符

static final byte[] KEYVALUE = getBytes();

//读取字节的长度

static final int BUFFERLEN = ;

//加密临时存储目录

static final String TRANSIT_DIR_ENC = ;

//解密临时存储目录

static final String TRANSIT_DIR_DEC = ;

/

文件加密

@param oldFile 待加密文件

@param saveFileName 加密后文件保存路径

@return

@throws IOException

/

public static boolean encryptFile(File oldFile String saveFileName) throws IOException{

//如果传入的文件不存在或者不是文件则直接返回

if (!oldFile exists() || !oldFile isFile()){

return false;

}

FileInputStream in = new FileInputStream(oldFile);

//加密后存储的文件

File file = new File(saveFileName);

if (!file exists()){

return false;

}

//读取待加密文件加密后写入加密存储文件中

FileOutputStream out = new FileOutputStream(file);

int c pos keylen;

pos = ;

keylen = KEYVALUE length;

byte buffer[] = new byte[BUFFERLEN];

while ((c = in read(buffer)) != ) {

for (int i = ; i < c; i++) {

buffer[i] ^= KEYVALUE[pos];

out write(buffer[i]);

pos++;

if (pos == keylen){

pos = ;

}

}

}

in close();

out close();

return true;

}

/

文件加密

@param oldFile:待加密文件

@param saveFile 加密后的文件

@return

@throws IOException

/

public static boolean encryptFile(File oldFile File saveFile) throws IOException{

//如果传入的文件不存在或者不是文件则直接返回

if (!oldFile exists() || !oldFile isFile() || !saveFile exists() || !saveFile isFile()){

return false;

}

FileInputStream in = new FileInputStream(oldFile);

//读取待加密文件加密后写入加密存储文件中

FileOutputStream out = new FileOutputStream(saveFile);

int c pos keylen;

pos = ;

keylen = KEYVALUE length;

byte buffer[] = new byte[BUFFERLEN];

while ((c = in read(buffer)) != ) {

for (int i = ; i < c; i++) {

buffer[i] ^= KEYVALUE[pos];

out write(buffer[i]);

pos++;

if (pos == keylen){

pos = ;

}

}

}

in close();

out close();

return true;

}

/

文件加密

@param oldFile 待加密文件

@return

@throws IOException

/

public static File encryptFile(File oldFile) throws IOException{

//如果传入的文件不存在或者不是文件则直接返回

if (!oldFile exists() || !oldFile isFile()){

return null;

}

FileInputStream in = new FileInputStream(oldFile);

//临时加密文件存储目录

File dirFile = new File(TRANSIT_DIR_ENC);

//如果临时存储目录不存在或不是目录则直接返回

if (!dirFile exists() || !dirFile isDirectory()){

return null;

}

//加密后存储的文件

File file = new File(dirFile enc_ + TimeHandler getInstance() getTimeInMillis() + _ + oldFile getName());

if (!file exists()){

file createNewFile();

}

//读取待加密文件加密后写入加密存储文件中

FileOutputStream out = new FileOutputStream(file);

int c pos keylen;

pos = ;

keylen = KEYVALUE length;

byte buffer[] = new byte[BUFFERLEN];

while ((c = in read(buffer)) != ) {

for (int i = ; i < c; i++) {

buffer[i] ^= KEYVALUE[pos];

out write(buffer[i]);

pos++;

if (pos == keylen){

pos = ;

}

}

}

in close();

out close();

//返回加密后的文件

return file;

}

/

文件加密

@param oldFileName 待加密文件路径

@return

@throws IOException

@throws Exception

/

public static File encryptFile(String oldFileName) throws IOException {

//如果待加密文件路径不正确则直接返回

if (oldFileName == null || oldFileName trim() equals( )){

return null;

}

//待加密文件

File oldFile = new File(oldFileName);

//如果传入的文件不存在或者不是文件则直接返回

if (!oldFile exists() || !oldFile isFile()){

return null;

}

//调用文件加密方法并返回结果

return encryptFile(oldFile);

}

/

文件解密

@param oldFile 待解密文件

@return

@throws IOException

/

public static File decryptFile(File oldFile) throws IOException{

//如果待解密文件不存在或者不是文件则直接返回

if (!oldFile exists() || !oldFile isFile()){

return null;

}

FileInputStream in = new FileInputStream(oldFile);

//临时解密文件存储目录

File dirFile = new File(TRANSIT_DIR_DEC);

//如果临时解密文件存储目录不存在或不是目录则返回

if (!dirFile exists() || !dirFile isDirectory()){

return null;

}

//解密存储文件

File file = new File(dirFile dec_ + TimeHandler getInstance() getTimeInMillis() + _ + oldFile getName() substring(oldFile getName() lastIndexOf( )));

if (!file exists()){

file createNewFile();

}

//读取待解密文件并进行解密存储

FileOutputStream out = new FileOutputStream(file);

int c pos keylen;

pos = ;

keylen = KEYVALUE length;

byte buffer[] = new byte[BUFFERLEN];

while ((c = in read(buffer)) != ) {

for (int i = ; i < c; i++) {

buffer[i] ^= KEYVALUE[pos];

out write(buffer[i]);

pos++;

if (pos == keylen){

pos = ;

}

}

}

in close();

out close();

//返回解密结果文件

return file;

}

/

文件解密

@param oldFileName 待解密文件路径

@return

@throws Exception

/

public static File decryptFile(String oldFileName) throws Exception {

//如果待解密文件路径不正确则直接返回

if (oldFileName == null || oldFileName trim() equals( )){

return null;

}

//待解密文件

File oldFile = new File(oldFileName);

//如果待解密文件不存在或不是文件则直接返回

if (!oldFile exists() || !oldFile isFile()){

return null;

}

//调用文件解密方法并返回结果

return decryptFile(oldFile);

}

lishixinzhi/Article/program/Java/hx/201311/26983

思路是这样的:1、将压缩文件解压缩到临时目录2、读取临时目录中的文件或者文件夹(如果是文件夹则读取文件夹中的文件以此类推)3、将读取的内容显示4、删除临时文件夹中的文件或者文件夹这些都没有难点gkos你觉得对你来说难度在哪里呢

可以把文件目录配置在webxml文件的初始化参数中, 通过ServletAPI读取文件目录

比如

定义一个Properties文件保存相关配置

#可以上传文件的后缀名

extensions=pptx,docxdoc,txt,jpg,jar

#单个文件的大小1M

fileMaxSize=1048576

#总共上传文件大小5M

totalFileMaxSize=5242880

#文件保存路径

filePath=z:/temp

#临时文件路径

tempDir=z:/temp/temp

使用Listener在服务器启动时加载配置信息

ServletContext context = eventgetServletContext();

InputStream inputStream = context

getResourceAsStream("/WEB-INF/classes/file/upload/commons/uploadConfigproperties");

Properties properties = new Properties();

try {

propertiesload(inputStream);

contextsetAttribute("fileConfig", properties);

Systemoutprintln("properties = " + propertiessize());

} catch (IOException e) {

eprintStackTrace();

}

在你上传文件时通过配置文件读取路径保存

String filePath = ((Properties) thisgetServletContext()getAttribute("fileConfig"))

getProperty(FileUploadConstantsFILE_PATH);

以上就是关于如何在Java中获取环境变量的值全部的内容,包括:如何在Java中获取环境变量的值、Java文件加解密、java 读取zip里面的文件夹等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9657159.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存