`
daniel_tu
  • 浏览: 178761 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

System.getProperties()

    博客分类:
  • Java
阅读更多

1 java 通过 System.getProperties() 获取系统参数   

   Properties props=System.getProperties(); // 系统属性
   System.out.println("Java
的运行环境版本: "+props.getProperty("java.version"));
   System.out.println("Java
的运行环境供应商: "+props.getProperty("java.vendor"));
   System.out.println("Java
供应商的 URL "+props.getProperty("java.vendor.url"));
   System.out.println("Java
的安装路径: "+props.getProperty("java.home"));
   System.out.println("Java
的虚拟机规范版本: "+props.getProperty("java.vm.specification.version"));
   System.out.println("Java
的虚拟机规范供应商: "+props.getProperty("java.vm.specification.vendor"));
   System.out.println("Java
的虚拟机规范名称: "+props.getProperty("java.vm.specification.name"));
   System.out.println("Java
的虚拟机实现版本: "+props.getProperty("java.vm.version"));
   System.out.println("Java
的虚拟机实现供应商: "+props.getProperty("java.vm.vendor"));
   System.out.println("Java
的虚拟机实现名称: "+props.getProperty("java.vm.name"));
   System.out.println("Java
运行时环境规范版本: "+props.getProperty("java.specification.version"));
   System.out.println("Java
运行时环境规范供应商: "+props.getProperty("java.specification.vender"));
   System.out.println("Java
运行时环境规范名称: "+props.getProperty("java.specification.name"));
   System.out.println("Java
的类格式版本号: "+props.getProperty("java.class.version"));
   System.out.println("Java
的类路径: "+props.getProperty("java.class.path"));
   System.out.println("
加载库时搜索的路径列表: "+props.getProperty("java.library.path"));
   System.out.println("
默认的临时文件路径: "+props.getProperty("java.io.tmpdir"));
   System.out.println("
一个或多个扩展目录的路径: "+props.getProperty("java.ext.dirs"));
   System.out.println("
操作系统的名称: "+props.getProperty("os.name"));
   System.out.println("
操作系统的构架: "+props.getProperty("os.arch"));
   System.out.println("
操作系统的版本: "+props.getProperty("os.version"));
   System.out.println("
文件分隔符: "+props.getProperty("file.separator"));   // unix 系统中是"/"
   System.out.println("
路径分隔符: "+props.getProperty("path.separator"));   // unix 系统中是" :
   System.out.println("
行分隔符: "+props.getProperty("line.separator"));   // unix 系统中是" /n
   System.out.println("
用户的账户名称: "+props.getProperty("user.name"));
   System.out.println("
用户的主目录: "+props.getProperty("user.home"));
   System.out.println("
用户的当前工作目录: "+props.getProperty("user.dir"));

 

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

本技巧将向您讲述如何编写可通过代理访问因特网上的 Web 服务器的 Java 应用程序。在 Java 应用程序中加入代理支持只需额外编写几行代码,且不依赖任何安全性 漏洞

Java 和代理结合起来的秘诀即在 Java 运行时激活特定的系统属性。这些属性未被写入正式文件,只是作为 Java 传说的一部分在 Java 编程人员中秘传。为了支持代理, 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" );
   FTP 代理

   ScottD.Taylor 提出这个秘诀来处理 FTP 协议代理:

defaultProperties.put("ftpProxySet","true");
defaultProperties.put("ftpProxyHost","proxy-host-name");
defaultProperties.put("ftpProxyPort","85");

  接下来您便可以通过以下代码使用 "ftp" 协议访问文件 URL

URL
  url=newURL("ftp://ftp.netscape.com/pub/navigator/3.04/windows/readme.txt");

  如果有人有使用其他网际协议代理的例子,我很想看看。

  注意:代码示例 (Example.java) 仅在 JDK1.1.4 下测试过。

  后续技巧!

  对于仍在使用 JDK1.1.7 (配合 WebSphere3.0 )的开发人员而言,将 proxyHost proxyPort 设为系统属性不起作用; conn.getInputStream() 或者返回连接超时,或者是找不到主机路径。但是,我使用接受 Host Port 为参数的 URL 构造函数解决了这一问题(使用我的代理主机和端口):

public
  URL(String   protocol,String   host,int port,String   file).

  借助用户名和口令进行认证的方法不起作用。应将 "Basic" 置于认证字符串的开头;例如:

String
  encodedPassword=base64Encode(password);

  应该是:

String
  encodedPassword="Basic"+base64Encode(password);

  您也不必用一个单独的程序来进行 64 位编码。您可以使用 sun.misc.BASE64Encoder() 类。下面是完成这两处改动之后的代码:

System.getProperties().put("proxySet","true");
System.getProperties().put("proxyHost",proxyHost);
System.getProperties().put("proxyPort",proxyPort);
String
  authString="userid:password";
String
  auth="Basic"+newsun.misc.BASE64Encoder().encode(authString.getBytes());
URL
url=newURL("http://java.sun.com/");
URLConnection
  conn=url.openConnection();
conn.setRequestProperty("Proxy-Authorization",auth);

  下面是使用 socks4 代理服务器的方法:

System.getProperty("socksProxySet",true);
System.getProperty("socksProxyHost",proxyHostName);
System.getProperty("socksProxyPort",proxyPort);
Usually
  the   proxyPort   for   Socks 4   is   port   1080

分享到:
评论

相关推荐

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

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

    Matlab 发送邮件代码

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

    修改mail源码 支持socks代理

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

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

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

    mybatis自动生成工具

    System.getProperties() : 直接引用,没有前缀 generator.properties 文件中的所有属性,直接引用,没有前缀 gg : 模板控制变量, cn.org.rapid_framework.generator.GeneratorControl 四.每个模板有gg变量可以...

    jsp连接数据库代码

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

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

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

    phantomjs1.9.8历史版本用于爬虫

     String osname = System.getProperties().getProperty("os.name");  if (osname.equals("Linux")) {//判断系统的环境win or Linux  System.setProperty("phantomjs.binary.path", "/usr/bin/phantomjs");  } ...

    复杂邮件程序完整Java源码,支持添加附件,图片,HTML格式文本,支持远程WebService调用

    Properties props = System.getProperties(); { props.put("mail.smtp.host", this.host); props.put("mail.smtp.auth", "true"); } ValidateAuther auther = new ValidateAuther(this.sender, ...

    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"); /...

    JAVA代码生成工具

    System.getProperties() : 直接引用,没有前缀 generator.properties 文件中的所有属性,直接引用,没有前缀 gg : 模板控制变量, cn.org.rapid_framework.generator.GeneratorControl 四.每个模板有gg变量可以...

    利用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...

    Java邮件开发Fundamentals of the JavaMail API

    Fundamentals of the JavaMail API Presented by developerWorks, your source for great tutorials ... Table of Contents If you're viewing this document online, you can click any of the topics below ...

    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 ...

    Java 连接多种数据库代码参考

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

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

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

    电子邮件实现方法电子邮件实现方法电子邮件实现方法

    获取用户输入的信息 对于用户输入内容获取功能是通过getParameter方法来实现的,对于输入的文本内容...Session session2=Session.getInstance(System.getProperties() ,null);Store store=session2.getStore("pop3");

    简易实用的JavaMail邮箱程序

    Properties props = System.getProperties(); { props.put("mail.smtp.host",this.host); props.put("mail.smtp.auth","true"); } ValidateAuther auther = new ValidateAuther(this.sender,password)...

    JavaMail jsp发送邮件

    java.util.Properties props = System.getProperties(); props.put("mail.host", mailserver); props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.auth", "true");//指定是否需要SMTP验证 ...

Global site tag (gtag.js) - Google Analytics