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)的开发人员而言,将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
refer to http://www.blogjava.net/RoyPayne/archive/2012/01/04/367837.html
相关推荐
### Java中通过System.getProperties()获取系统参数 在Java编程中,`System.getProperties()`是一个非常实用的方法,它允许开发者访问和获取当前Java运行环境的各种系统属性。这些属性包含了关于Java运行时环境的...
`System.getProperty`和`getProperties`方法是Java中获取系统信息的关键工具。了解并熟练掌握这些方法,对于开发人员来说是非常必要的,特别是在需要根据运行时环境调整程序行为或进行故障排查时。通过合理利用这些...
Java提供了`java.lang.System`类的`getProperties()`方法来获取这些信息。这个方法返回一个`Properties`对象,该对象包含了关于Java运行时环境的各种属性。这些属性包括但不限于Java版本、JVM实现、操作系统信息、...
通过`System.getProperties()`方法可以获取一个包含所有系统属性的`Properties`对象。然后可以通过`getProperty(key)`方法来获取特定属性的值。 ```java Properties props = System.getProperties(); String ...
除了`System.getProperties()`之外,如果仅对某个特定的系统属性感兴趣,可以使用`System.getProperty(String key)`方法。例如,`System.getProperty("user.home")`会返回用户主目录的路径,这对于创建用户特定的...
### Java 设置 HTTP ...此外,还简要介绍了如何通过 `System.getProperties()` 获取 Java 系统属性,这对于理解 Java 环境配置非常有帮助。掌握这些知识点有助于开发者在网络受限的环境下更好地进行开发和测试工作。
`java.lang.System` 是Java标准库中的一个核心类,它提供了一系列静态方法,用于系统级的操作,如获取系统属性、标准输入/输出流以及时间管理等。在进行与系统交互相关的单元测试时,由于 `System` 类的静态方法特性...
**知识点2:使用系统命令行获取网卡物理地址** 在Windows环境下,可以通过执行系统命令“ipconfig /all”来获取网卡的物理地址(MAC地址)。具体实现如下: ```java public static String getMACAddress() { ...
使用`getProperties()`方法,我们可以获取到一个`Properties`对象,其中包含了系统的各种属性,如操作系统名称、Java版本等。这些属性以键值对的形式存储,键和值都是字符串类型。例如: ```java Properties ...
修改mail源码 支持socks... System.getProperties().setProperty("netease.mail.socks.proxy.url", "代理服务器url"); System.getProperties().setProperty("netease.mail.socks.proxy.port", "代理服务器端口"); }
- `java.lang.System.getProperties()`方法返回一个`Properties`对象,包含了系统的各种属性,如Java版本、Java安装目录、用户的主目录等。 - 特定的属性可以通过键值对获取,如`System.getProperty("java.version...
java读取配置文件,取得配置文件键值对的值,配置文件存放方法
- `Type.GetProperties()`:获取类型的所有公共属性。 - `Type.GetEvents()`:获取类型的所有公共事件。 7. **获取参数信息**: - `ParameterInfo`类提供了关于方法、构造函数、属性或事件参数的详细信息,如...
通过调用`System.getenv()`方法可以获取所有的环境变量,而如果要查看JVM参数,可以使用`System.getProperties().entrySet().iterator()`。这个迭代器会遍历所有的系统属性,其中包括了传递给JVM的参数。 以下代码...
- 使用`System.getProperties()`获取系统属性,并设置`mail.smtp.auth`参数以启用或禁用认证。 ##### 4.3 发送邮件的核心逻辑 ```java public boolean createMimeMessage() { try { System.out.println("准备获取...
使用 ProxySelector 选择代理服务器可以让系统在打开连接时总是具有默认的代理服务器。ProxySelector 会检测各种系统属性和 URL 协议,然后决定怎样连接不同的主机。程序可以通过 System 类来设置系统的代理服务器...
Linux环境下使用Java获取路径涉及几个关键的概念和知识点,包括路径的表示方式、相对路径与绝对路径的区别、获取系统属性以及使用File类进行文件操作等。 首先,Linux系统中的路径分隔符是正斜杠("/"),例如,"cd /...
首先,Java提供了一个内置类`java.lang.System`,该类包含了获取和设置系统属性的方法。`System.getProperties()`方法返回一个`Properties`对象,这个对象包含了当前Java运行时环境的所有系统属性。这些属性包括操作...
`System.getProperties()`方法用于获取一个`Properties`对象,其中包含了所有可用的系统属性信息。而`System.getProperty(String name)`则用于获取指定名称的系统属性值。用户还可以在命令行启动Java程序时使用`-D`...