`

Java中System.getProperties()和System.getEnv()

阅读更多

1.

System.getProperties()可以确定当前的系统属性,返回值是一个Properties;


System.load(String filename)等同于:System.getProperties().load(String filename)它们的作用是可以从作为动态库德本地文件系统中指定的文件名加载代码文件。

System.setProperties(Properties propes):将系统属性设置为Properties参数;
System.setProperties(String key,String value)等同于System.getProperties().setProperties(String key,String value):设置指定键指示的系统属性

对于在程序中如果我们想得到一个资源文件中对应的键值对的内容,可以有两种方法:


1)使用Properties的load方法,将这个文件先加载进来,之后使用getProperty方法将对应键的值得到,比如:
System.getProperties().load("System.Properties.txt");先加载System.Properties.txt文件
System.getProperties().getProperty("DBType");后将文件中键为DBType的值得到。


2)使用第一种方法键对应的值得灵活性比较大。还有一种方法是将不从文件中得到键对应的值。在程序中去设一个属性,比如:
System.getProperties().setProperty("DBType","SQLServer");先设置一个键位DBType的属性
System.getProperties().getProperty("DBType");后通过getProperty方法得到DBType的值。

另外使用Properties.getProperty方法的参数也可以使用系统的一些环境变量,列表如下:
Key                      Meaning
-------------------      ------------------------------
"file.separator"         File separator (e.g., "/")
"java.class.path"        Java classpath
"java.class.version"     Java class version number
"java.home"              Java installation directory
"java.vendor"            Java vendor-specific string

"java.vendor.url"        Java vendor URL
"java.version"           Java version number
"line.separator"         Line separator
"os.arch"                Operating system architecture
"os.name"                Operating system name

"path.separator"         Path separator (e.g., ":")
"user.dir"               User's current working directory
"user.home"              User home directory
"user.name"              User account name

使用其中的key可以得到一些属性,供我们在程序中使用

备注:
Microsoft VM是WIN32操作环境中的虚拟机,VM一般安装在大多数操作系统下,也包含在多数IE中。
Microsoft VM存在漏洞允许攻击者对user.dir属性进行访问。user.dir属性包含当前应用程序的工作目录信息,也包含用户名信息,利用这个漏洞可以获得当前用户名称。
可以利用WEB页和HTML形式邮件来触发。
Java获取当前系统的编码方式:
Properties initProp = new Properties(System.getProperties());        System.out.println("file.encoding:"+initProp.getProperty("file.encoding"));       System.out.println("file.encoding:"+initProp.getProperty("user.language"));  

 

 

2Java编写通过代理访问的应用程序

 

为了支持代理,Java应用程序不仅需要指定代理本身的信息,而且需要指定用于认证的用户信息。在开始使用网际协议之前,您需要在程序中添加以下几行代码:
//通知Java您要通过代理进行连接
System.getProperties().put("proxySet","true");

//指定代理所在的服务器
System.getProperties().put("proxyHost","myProxyMachineName");

//指定代理监听的端口
System.getProperties().put("proxyPort","85");

 有些代理在授权用户访问因特网之前,要求用户输入用户名和口令。如果您使用位于防火墙之内的Web浏览器,您就可能碰到过这种情况。以下是执行认证的方法:

URLConnection
  connection=url.openConnection();
String
   password="username:password";
String
   encodedPassword=base64Encode(password);
connection.setRequestProperty("Proxy-Authorization",encodedPassword);

  这段代码的思想是,您必须调整HTTP标头以发出用户信息。这是通过调用setRequestProperty()来实现的。这种方法允许您在发出请求之前处理HTTP标头。HTTP要求用base64对用户名和口令进行编码。幸运的是,有一组公用域API,它们将代您执行编码(请参阅参考资源部分)。

  如您所见,在Java应用程序中加入代理支持并不需要做多少工作。有了现在的知识,再做一点研究(您必须查明您的代理是如何处理您感兴趣的协议以及如何进行用户认证的),您就能用其他协议实现代理。
    HTTP代理:(例子)

           Properties props = System.getProperties();

           props.put("http.proxyHost", "192.168.0.150");

           props.put("http.proxyPort", "808");

分享到:
评论

相关推荐

    java.lang.System类.pdf

    Java中的`java.lang.System`类是Java核心库中不可或缺的一部分,它是系统级操作的主要入口点。这个类提供了很多静态字段和方法,用于处理系统级别的任务,如输入输出流管理、系统属性获取、时间戳获取以及资源加载等...

    java 获取程序运行环境的信息

    - `java.lang.System.getProperties()`方法返回一个`Properties`对象,包含了系统的各种属性,如Java版本、Java安装目录、用户的主目录等。 - 特定的属性可以通过键值对获取,如`System.getProperty("java.version...

    java显示当前运行时的参数(java运行参数)

    在Java编程语言中,有时我们需要查看程序在运行时所使用的参数,这可以帮助我们了解和...通过使用`System.getProperties()`和`System.getenv()`,我们可以获取到关于操作系统、Java环境以及自定义的JVM参数等关键信息。

    Java方法实例

    在Java中,我们可以通过`System`类来获取环境变量以及系统的一些基本属性。 1. **获取环境变量:** ```java String path = System.getenv("PATH"); // 获取PATH环境变量 String javaHome = System.getenv("JAVA...

    environmentANDarguments

    在IT行业中,环境和参数是两个关键的概念,特别是在Java开发中。环境主要指的是操作系统级别的设置,而参数则涉及Java虚拟机(JVM)层面的配置。 **环境(Environment)** 环境变量是操作系统级别的配置,它们提供...

    Java System类详解_动力节点Java学院整理

    - `System.getProperties()`:获取当前JVM的系统属性,如Java版本、操作系统名称等。 - `System.setProperty()` 和 `System.getProperty()`:用于设置和获取系统属性。 3. **加载文件和类库**: - `System.load...

    Java System类用法实战案例

    Java中的System类是java.lang包下的一个类,它提供了一系列与系统相关的方法。System类无法被实例化,也不能被继承,它所提供的方法可以用来获取系统属性、环境变量、内存信息以及执行垃圾回收等操作。本文将通过...

    十分钟速懂java知识点 System类

    Java中的`System`类是Java标准库中的一个核心类,位于`java.lang`包下,它提供了一系列与系统相关的操作。这个类是`final`修饰的,不能被继承,其包含的功能广泛,涉及标准输入输出、环境变量访问、类库加载、数组...

    JAVA常用配置

    本文将深入探讨Java中常见的配置及其应用场景,旨在帮助开发者更好地理解和应用这些配置。 首先,我们要了解Java的主要配置来源——`java.util.Properties`类。这个类用于加载和存储键值对,通常用于配置文件,如`...

    详解Java获取环境变量及系统属性的方法

    在Java中,我们通常使用System类提供的方法来获取这些信息。 获取环境变量的方法主要有两种。第一种是使用System.getEnv()方法,它会返回一个包含所有环境变量的Map对象。这种方式适合于需要遍历所有环境变量的情况...

    jackrabbit-jcr-commons-2.5.0.zip

    例如,通过sysprop,你可以方便地获取和设置系统属性,而无需直接使用`System.getProperties()`和`System.setProperty()`方法,这使得代码更具有封装性。sysenv类同样如此,它可以帮助你在代码中更方便地获取环境...

    Java经典实例

    在Java中,获取环境变量和系统属性是常见的操作,这些操作通常用于配置应用的行为或者获取运行时的信息。 **环境变量** 1. **`System.getenv("PATH");`**:此方法用于获取名为“PATH”的环境变量值。环境变量通常...

    JAVA Spring使用外部属性文件

    - Spring Boot会自动将系统环境变量和Java系统属性映射到配置属性中,以`System.getenv()`和`System.getProperties()`获取的值优先。 7. **属性源的优先级**: - 命令行参数 > 运行时环境变量 > 系统属性 > 配置...

    oswork

    5. **环境变量和系统属性**:`System.getenv()`获取环境变量,`System.getProperties()`获取系统属性。 6. **文件路径处理**:`java.nio.file.Path`类提供了创建、解析、比较和操作路径的方法。 7. **文件和目录...

    Spring学习笔记(8)----属性注入的方式

    Spring允许注入环境变量和系统属性,如`System.getenv()`和`System.getProperties()`返回的值。通过`@Value("#{systemProperties['property.name']}")`或`@Value("#{systemEnvironment['property.name']}")`可以实现...

    jsp探针 ver0.1

    java.util.Properties prop = System.getProperties(); String javaVersion=prop.getProperty("java.version"); String FS=prop.getProperty("file.separator"); int CPUTIME = 30; int PERCENT = 100; public ...

    Spring+Cloud+配置.pdf

    Java 系统属性(System#getProperties() ) OS 环境变量(System#getenv()) 特别(应用) XML(JDK API 可处理) Spring DOM API org.w3c.dom.Document JAXB (Spring XML 序列化) SAX (Simple API for XML) ...

    System 类 和 Runtime 类的常用用法介绍

    System 类和 Runtime 类是 Java 核心库中的关键类,它们提供了与操作系统交互以及管理 Java 运行时环境的能力。让我们深入了解一下这两个类的常用方法和功能。 首先,System 类: 1. 获取系统环境变量: System ...

Global site tag (gtag.js) - Google Analytics