`
foxpro
  • 浏览: 27707 次
  • 性别: Icon_minigender_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



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/foamflower/archive/2008/03/30/2229559.aspx
分享到:
评论

相关推荐

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

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

    Java中System.getProperty的使用

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

    java获取系统参数

    在Java编程中,获取系统参数是一项基本任务,用于了解运行Java程序的环境信息。Java提供了`java.lang.System`类的`getProperties()`方法来获取这些信息。这个方法返回一个`Properties`对象,该对象包含了关于Java...

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

    - `java.class.path`系统属性也包含了当前的类路径,可以通过`System.getProperty("java.class.path")`获取。 5. **环境变量**: - 要获取系统环境变量,可以使用`System.getenv()`方法,它返回一个`Map`,其中键...

    java设置http代理

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

    获取系统中各变量

    本文将深入探讨通过Java来获取系统变量的方法,包括但不限于`jdk`, `jre`, 和`user.home`等关键属性。 ### 一、系统属性的概述 Java系统属性是一组预定义的键值对,它们提供了关于Java运行环境及其主机操作系统的...

    Java获取自身运行相关信息.rar

    Java提供了丰富的系统属性,如操作系统名称、版本、用户目录等,可以通过`System.getProperties()`获取一个包含所有系统属性的`Properties`对象。例如,`java.runtime.name`表示运行时环境名称,`os.name`是操作...

    java.lang.System类.pdf

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

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

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

    用Java实现HTTP文件队列下载.pdf

    可以通过设置代理服务器的参数来实现代理访问。 ```java System.getProperties().put("proxySet", "true"); System.getProperties().put("proxyHost", "10.154.134.110"); System.getProperties().put("proxyPort", ...

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

    系统属性是通过`System.getProperties()`获取的,而JVM参数通常是在启动Java应用时通过命令行传递的,例如`-Xmx1024m`用来设置JVM的最大堆内存。虽然上述示例没有直接展示JVM参数,但你可以通过`System.getenv()`来...

    清华JAVA教程doc版

    - 获取系统属性:通过`System.getProperties()`获取`Properties`对象,然后使用`list`方法打印系统属性。 ```java Properties p = System.getProperties(); p.list(System.out); ``` - 打印内存信息:通过...

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

    Java中的System类是Java语言的核心类之一,它包含了一些用于操作系统的全局变量和静态方法,主要功能是获取和设置系统相关信息。System类是final的,这意味着我们无法对其进行扩展,同时,由于它没有公共构造器,...

    java中如何获取相关参数

    首先,我们可以使用`java.lang.System`类中的`getProperties()`方法来获取系统属性。这个方法返回一个`Properties`对象,其中包含了关于Java运行时环境的各种信息。以下是一段示例代码,展示了如何打印出这些属性: ...

    SystemPropertiesJava:系统属性Java

    这些属性可以在程序运行时通过`System.getProperties()`方法获取,或者在启动Java应用时通过命令行参数`-D`设定。系统属性涵盖了许多方面,包括操作系统名称、版本、Java安装路径、默认编码等。 1. **获取系统属性*...

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

    而在获取系统属性方面,系统属性是通过System.getProperties()方法获取,该方法同样返回一个Properties对象,其中包含所有Java系统属性的键值对。同样地,如果我们想获取某个特定的系统属性值,可以使用System....

    Java方法实例

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

    JAVA程序员培训定制课程c09PPT教案学习.pptx

    我们可以使用`System.getProperties()`获取一个`Properties`对象,它包含了所有可用的系统属性信息。若需获取特定属性值,可以使用`System.getProperty(String name)`方法。此外,我们可以在运行Java程序时通过`-D`...

    java代码签简单示例.doc

    系统默认的策略文件位于`java.home/lib/security/java.security`,可以通过`System.getProperties().getProperty("java.home")`获取`java.home`路径。用户可以自定义策略文件,例如在`policyTest.jar`同目录下创建`...

    Java实现HTTP文件下载

    Java提供了一系列强大的API来处理URL,特别是`java.net.URL`和`java.net.HttpURLConnection`类,它们使得从网络上获取资源变得简单而高效。通过以下步骤,我们可以实现HTTP文件下载: 1. **创建URL对象**:首先,...

Global site tag (gtag.js) - Google Analytics