如何在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 API *** 作 HDFS 时,可以使用 FileSystemlistFiles() 方法来获取文件列表。该方法接受一个 Path 对象,表示要列举文件的目录,并返回一个 RemoteIterator<LocatedFileStatus> 对象,该对象可用于迭代目录中的文件。

例如,下面的代码演示了如何使用 listFiles() 方法来获取 HDFS 上的文件列表:

// 定义 HDFS 连接配置

Configuration conf = new Configuration();

// 获取 HDFS FileSystem 对象

FileSystem fs = FileSystemget(conf);

// 定义要列举文件的目录

Path dirPath = new Path("/user/hadoop");

// 获取文件列表

RemoteIterator<LocatedFileStatus> fileIter = fslistFiles(dirPath, true);

// 遍历文件列表

while (fileIterhasNext()) {

// 获取当前文件信息

LocatedFileStatus fileStatus = fileIternext();

// 输出文件名称和大小

Systemoutprintln(fileStatusgetPath()getName() + " : " + fileStatusgetLen());

}

java可使用FileSystemView和ShellFolder类获取文件的小图标和大图标,以下是详细代码:

import javaawtFlowLayout;

import javaioFile;

import javaioFileNotFoundException;

import javaxswingIcon;

import javaxswingImageIcon;

import javaxswingJFrame;

import javaxswingJLabel;

import javaxswingfilechooserFileSystemView;

public class GetFileIcon {

/

  @param args

 /

    public static void main( String[] args )

    {

        String    filePath    = "D:/sheet1xlsx";

        File    f        = new File( filePath );

        JFrame    frm        = new JFrame();

        frmsetSize( 300, 200 );

        frmsetLocationRelativeTo( null );

        frmsetDefaultCloseOperation( JFrameEXIT_ON_CLOSE );

        frmsetVisible( true );

        frmsetLayout( new FlowLayout( 10, 10, FlowLayoutLEADING ) );

        JLabel sl = new JLabel( "小图标" );

        frmadd( sl );

        JLabel bl = new JLabel( "大图标" );

        frmadd( bl );

        slsetIcon( getSmallIcon( f ) );

        blsetIcon( getBigIcon( f ) );

    }

/

  获取小图标

  @param f

  @return

 /

    private static Icon getSmallIcon( File f )

    {

        if ( f != null && fexists() )

        {

            FileSystemView fsv = FileSystemViewgetFileSystemView();

            return(fsvgetSystemIcon( f ) );

        }

        return(null);

    }

/

  获取大图标

  @param f

  @return

 /

    private static Icon getBigIcon( File f )

    {

        if ( f != null && fexists() )

        {

            try {

                sunawtshellShellFolder sf = sunawtshellShellFoldergetShellFolder( f );

                return(new ImageIcon( sfgetIcon( true ) ) );

            } catch ( FileNotFoundException e ) {

/ TODO Auto-generated catch block /

                eprintStackTrace();

            }

        }

        return(null);

    }

}

以上就是关于如何在Java中获取环境变量的值全部的内容,包括:如何在Java中获取环境变量的值、使用Java API *** 作HDFS时,_方法用于获取文件列表、java 如何得到文件的系统图标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/9752364.html

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

发表评论

登录后才能评论

评论列表(0条)

保存