当程序中需要使用与 *** 作系统相关的变量(例如:文件分隔符、换行符)时,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 如何得到文件的系统图标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)