`
dacoolbaby
  • 浏览: 1267208 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用System.getProperties()获取系统参数 配置代理

    博客分类:
  • Java
阅读更多

 

1.java的System.getProperty()方法可以获取的值

 

java.version

Java 运行时环境版本

java.vendor

Java 运行时环境供应商

java.vendor.url

Java 供应商的 URL

java.home

Java 安装目录

java.vm.specification.version

Java 虚拟机规范版本

java.vm.specification.vendor

Java 虚拟机规范供应商

java.vm.specification.name

Java 虚拟机规范名称

java.vm.version

Java 虚拟机实现版本

java.vm.vendor

Java 虚拟机实现供应商

java.vm.name

Java 虚拟机实现名称

java.specification.version

Java 运行时环境规范版本

java.specification.vendor

Java 运行时环境规范供应商

java.specification.name

Java 运行时环境规范名称

java.class.version

Java 类格式版本号

java.class.path

Java 类路径

java.library.path

加载库时搜索的路径列表

java.io.tmpdir

默认的临时文件路径

java.compiler

要使用的 JIT 编译器的名称

java.ext.dirs

一个或多个扩展目录的路径

os.name

操作系统的名称

os.arch

操作系统的架构

os.version

操作系统的版本

file.separator

文件分隔符(在 UNIX 系统中是“/”)

path.separator

路径分隔符(在 UNIX 系统中是“:”)

line.separator

行分隔符(在 UNIX 系统中是“/n”)

user.name

用户的账户名称

user.home

用户的主目录

user.dir

用户的当前工作目录

 

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

 

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

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

 

对于仍在使用JDK1.1.7(配合WebSphere3.0)的开发人员而言,将proxyHostproxyPort设为系统属性不起作用;conn.getInputStream()或者返回连接超时,或者是找不到主机路径。但是,我使用接受HostPort为参数的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

 

refer to http://www.blogjava.net/RoyPayne/archive/2012/01/04/367837.html

 

 

分享到:
评论

相关推荐

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

    ### Java中通过System.getProperties()获取系统参数 在Java编程中,`System.getProperties()`是一个非常实用的方法,它允许开发者访问和获取当前Java运行环境的各种系统属性。这些属性包含了关于Java运行时环境的...

    Java中System.getProperty的使用

    `System.getProperty`和`getProperties`方法是Java中获取系统信息的关键工具。了解并熟练掌握这些方法,对于开发人员来说是非常必要的,特别是在需要根据运行时环境调整程序行为或进行故障排查时。通过合理利用这些...

    java获取系统参数

    Java提供了`java.lang.System`类的`getProperties()`方法来获取这些信息。这个方法返回一个`Properties`对象,该对象包含了关于Java运行时环境的各种属性。这些属性包括但不限于Java版本、JVM实现、操作系统信息、...

    在Java中获取系统属性

    通过`System.getProperties()`方法可以获取一个包含所有系统属性的`Properties`对象。然后可以通过`getProperty(key)`方法来获取特定属性的值。 ```java Properties props = System.getProperties(); String ...

    获取系统中各变量

    除了`System.getProperties()`之外,如果仅对某个特定的系统属性感兴趣,可以使用`System.getProperty(String key)`方法。例如,`System.getProperty("user.home")`会返回用户主目录的路径,这对于创建用户特定的...

    java设置http代理

    ### Java 设置 HTTP ...此外,还简要介绍了如何通过 `System.getProperties()` 获取 Java 系统属性,这对于理解 Java 环境配置非常有帮助。掌握这些知识点有助于开发者在网络受限的环境下更好地进行开发和测试工作。

    System Lambda是一个函数集合,用于测试使用javalangSystem的代码.zip

    `java.lang.System` 是Java标准库中的一个核心类,它提供了一系列静态方法,用于系统级的操作,如获取系统属性、标准输入/输出流以及时间管理等。在进行与系统交互相关的单元测试时,由于 `System` 类的静态方法特性...

    Java获取系统信息

    **知识点2:使用系统命令行获取网卡物理地址** 在Windows环境下,可以通过执行系统命令“ipconfig /all”来获取网卡的物理地址(MAC地址)。具体实现如下: ```java public static String getMACAddress() { ...

    java system类使用方法示例 获取系统信息

    使用`getProperties()`方法,我们可以获取到一个`Properties`对象,其中包含了系统的各种属性,如操作系统名称、Java版本等。这些属性以键值对的形式存储,键和值都是字符串类型。例如: ```java Properties ...

    修改mail源码 支持socks代理

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

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

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

    getproperties

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

    .NET中反射的应用 获取Dll参数

    - `Type.GetProperties()`:获取类型的所有公共属性。 - `Type.GetEvents()`:获取类型的所有公共事件。 7. **获取参数信息**: - `ParameterInfo`类提供了关于方法、构造函数、属性或事件参数的详细信息,如...

    environmentANDarguments

    通过调用`System.getenv()`方法可以获取所有的环境变量,而如果要查看JVM参数,可以使用`System.getProperties().entrySet().iterator()`。这个迭代器会遍历所有的系统属性,其中包括了传递给JVM的参数。 以下代码...

    JAVAMAIL实例

    - 使用`System.getProperties()`获取系统属性,并设置`mail.smtp.auth`参数以启用或禁用认证。 ##### 4.3 发送邮件的核心逻辑 ```java public boolean createMimeMessage() { try { System.out.println("准备获取...

    java代理服务器设置方法[借鉴].pdf

    使用 ProxySelector 选择代理服务器可以让系统在打开连接时总是具有默认的代理服务器。ProxySelector 会检测各种系统属性和 URL 协议,然后决定怎样连接不同的主机。程序可以通过 System 类来设置系统的代理服务器...

    linux中java获取路径的实例代码

    Linux环境下使用Java获取路径涉及几个关键的概念和知识点,包括路径的表示方式、相对路径与绝对路径的区别、获取系统属性以及使用File类进行文件操作等。 首先,Linux系统中的路径分隔符是正斜杠("/"),例如,"cd /...

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

    首先,Java提供了一个内置类`java.lang.System`,该类包含了获取和设置系统属性的方法。`System.getProperties()`方法返回一个`Properties`对象,这个对象包含了当前Java运行时环境的所有系统属性。这些属性包括操作...

    JAVA程序设计:第9章 基于文本的Java应用程序.ppt

    `System.getProperties()`方法用于获取一个`Properties`对象,其中包含了所有可用的系统属性信息。而`System.getProperty(String name)`则用于获取指定名称的系统属性值。用户还可以在命令行启动Java程序时使用`-D`...

Global site tag (gtag.js) - Google Analytics