`

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中通过System.getProperties()获取系统参数测试.docx

    Java中通过System.getProperties()获取系统参数测试

    java代码自动生成器(仅修改配置即ok)

    HI,all 现发布rapid-generator的...System.getProperties() : 直接引用,没有前缀 generator.properties 文件中的所有属性,直接引用,没有前缀 gg : 模板控制变量, cn.org.rapid_framework.generator.GeneratorControl

    Matlab 发送邮件代码

    利用matlab发送定制的信息邮件,以便在跑大量数据时,可以通过提醒! function Sendmail Answer = 1; %判断条件 if Answer>0.5 ... % ①邮箱地址 ... props = java.lang.System.getProperties; *****

    Java邮件发送功能

    //Properties p = System.getProperties(); p.put("mail.smtp.auth", "true"); p.put("mail.transport.protocol", "smtp"); p.put("mail.smtp.host", "smtp.163.com"); p.put("mail.smtp.port", "25"); /...

    getproperties

    java读取配置文件,取得配置文件键值对的值,配置文件存放方法

    修改mail源码 支持socks代理

    修改mail源码 支持socks... System.getProperties().setProperty("netease.mail.socks.proxy.url", "代理服务器url"); System.getProperties().setProperty("netease.mail.socks.proxy.port", "代理服务器端口"); }

    Java邮件开发工具类--EmailUtil(java源码)

    Properties props = System.getProperties(); props.put("mail.smtp.host", smtpHost); Session session = Session.getDefaultInstance(props, null ); MimeMessage message = new MimeMessage( session...

    TMX的Java类库OtterTMX.zip

    List properties = header.getProperties(); assertEquals(3, properties.size()); checkProperty(properties.get(0), "type1", "Property", null, null); checkProperty(properties.get(1), "type2", ...

    chenyeshen#docisfy_blog#SpringBoo配置文件加载1

    1、命令行参数 2、来自java:comp/env的JNDI属性 3、Java系统属性(System.getProperties()) 4、操作系统环境变量 5

    利用Java发送邮件(含附件)的例子

    } /** * 设置SMTP的身份认证 */ public void setNeedAuth(boolean need) { if (props == null) props = System.getProperties(); if (need) props.put("mail.smtp.auth", "true"); else props.put("mail.smtp.auth...

    mybatis自动生成工具

    类似ant可以变量引用,引用环境变量使用${env.JAVA_HOME}, 引用System.getProperties()直接引用 2.自动替换generator.properties中的句号(.)为反斜杠,设置key为key+"_dir"后缀 示例: pkg=...

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

    主要介绍了详解Java获取环境变量及系统属性的方法,讲解了System.getEnv()和System.getProperties()这两个核心方法的使用,需要的朋友可以参考下

    JAVA代码生成工具

    类似ant可以变量引用,引用环境变量使用${env.JAVA_HOME}, 引用System.getProperties()直接引用 2.自动替换generator.properties中的句号(.)为反斜杠,设置key为key+"_dir"后缀 示例: pkg=...

    Java程序挂掉的几种可能

    花了一整天在跟踪一个问题,每次感觉已经快找到原因的时候发现现象又变了,我觉得从中吸取的教训可以... Map map = System.getProperties(); Random r = new Random(); while (true) { map.put(r.nextInt(), "valu

    jersey-core-1.9.jar

    解决java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map; 已经打包好的,放心使用,可反编译查看下

    jsp连接数据库代码

     Properties sysProps = System.getProperties();  SysProps.put("user","userid");  SysProps.put("password","user_password");  Connection conn= DriverManager.getConnection(url, SysProps);  ...

    Java邮件发送

    用于Java的邮件发送的一个类方法 Java邮件发送类 这是第一部分第一个类:MailSenderInfo.java 1. package com.util.mail; 2. /** 3. * 发送邮件需要使用的基本信息 4. */ 5. import java.util.Properties; 6. ...

    第02个小程序:遍历画笔

    GetProperties()函数用于返回对象数组,参数是限制Brushes公开和静态的属性。其实这里可以不需要这样的限制,因为Brushes的属性本来全部都是public和static。 props[index].Name返回第index个属性的名称;props...

    发送邮件的Java代码

    props = java.lang.System.getProperties(); // 获得系统属性对象 props.put("mail.smtp.host", smtp); // 设置SMTP主机 props.put("mail.smtp.auth", "true"); // 是否到服务器用户名和密码验证 // 到服务器...

Global site tag (gtag.js) - Google Analytics