`
dacoolbaby
  • 浏览: 1272253 次
  • 性别: 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设置http代理

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

    HttpUnit 小结

    9. **代理配置**:如果测试环境需要通过代理服务器访问网络,可以通过以下方式配置代理。 ```java System.getProperties().put("proxySet", "true"); System.getProperties().put("proxyHost", "proxy.example....

    java客户端通过corba方式访问c++服务器

    - 配置`System.getProperties()`以指定ORB和其单例类,示例如下: ```java Properties props = System.getProperties(); props.put("org.omg.CORBA.ORBClass", "com.inprise.vbroker.orb.ORB"); props.put("org...

    .net学习心得.doc

    在实际开发中,反射常用于插件系统、序列化、配置文件解析、动态代理等场景。然而,需要注意的是,虽然反射提供了很大的便利性,但过度使用可能导致性能下降,因此在设计时应谨慎考虑其使用场合。

    基于Atmega128AU的热电偶温度采集与PID加热控制高精度数据采集系统设计

    内容概要:本文详细介绍了基于Atmega128AU微控制器的高精度温度采集与PID加热控制系统的设计与实现。系统采用两片AD7732进行24位高精度数据采集,配合MAX31856实现热电偶温度测量,并通过PID算法对加热过程进行精确控制。文中详细描述了各个组件的配置方法、代码实现以及抗干扰措施,确保系统的高精度和稳定性。此外,系统支持Modbus RTU通信协议,便于远程监控和调试。 适合人群:具有一定嵌入式开发经验的研发人员和技术爱好者。 使用场景及目标:适用于需要高精度温度控制的工业应用场景,如实验室、热处理炉等。目标是实现稳定的温度采集和精准的加热控制,同时具备良好的抗干扰性能。 其他说明:文中提供了详细的代码片段和配置指南,帮助读者理解和复现系统设计。强调了硬件选择、软件实现和抗干扰设计的重要性,确保系统能够在复杂环境中稳定运行。

    蓝桥杯C++程序设计本科B组题目

    蓝桥杯c ++资源。蓝桥杯C++程序设计本科B组题目。

    基于DSP28X的无速度矢量控制与飞车启动的C语言实现及优化

    内容概要:本文详细介绍了无速度矢量控制(Sensorless Vector Control)和飞车启动(Flying Start)的技术实现及其优化方法,特别针对TI公司的DSP28X系列处理器进行了深入探讨。文中首先讲解了飞车启动的关键技术,如滑模观测器的应用,通过符号函数和三目运算符实现高效控制,解决了电机自由旋转时的传统难题。接着讨论了全速域追踪的实现,利用自适应滤波器进行角度补偿,确保低速高精度和高速稳定性的平衡。此外,文章还展示了如何将算法封装成Simulink可调用的S函数模块,便于调试和移植。最后,针对代码移植过程中常见的问题提供了具体的解决方案,如IQmath库的使用技巧、PWM中断优化以及硬件依赖的抽象化处理。 适合人群:具备嵌入式系统开发经验,尤其是熟悉DSP和电机控制领域的工程师和技术人员。 使用场景及目标:①适用于需要高性能电机控制系统的工业应用场景,如风机、洗衣机、电动工具等;②帮助工程师理解和掌握无速度矢量控制和飞车启动的核心技术和优化方法,提高系统的可靠性和性能。 其他说明:本文不仅提供了详细的代码实现,还分享了许多实用的经验和技巧,对于希望深入了解电机控制算法并应用于实际项目的开发者非常有帮助。

    中兴光猫G7610V2-V3.0.0P1N12固件

    中兴光猫G7610V2-V3.0.0P1N12固件

    .NET Core外卖订餐系统:基于EF Core与Vue.js的企业级应用开发

    内容概要:本文详细介绍了如何使用 .NET Core 和 Vue.js 开发一个完整的外卖订餐系统。该系统分为后台管理系统和前台客户系统,采用的技术栈包括 .NET Core、EF Core Code First、Vue.js 和 Element UI。后台部分重点讲解了如何使用 .NET Core 创建 Web API 并通过 EF Core Code First 操作数据库,涵盖数据库设计、API 设计、权限管理等内容。前台部分则展示了如何利用 Vue.js 和 Element UI 构建用户友好的交互界面,包括动态表单、图片上传等功能。此外,文章还讨论了一些常见的开发陷阱和技术难点,如数据库查询优化、订单状态机、JWT 认证等。 适合人群:具备一定编程基础,特别是对 .NET Core 和 Vue.js 有一定了解的研发人员。 使用场景及目标:适用于希望深入理解前后端分离架构、企业级应用开发流程的学习者。通过实际项目的开发,掌握 .NET Core 和 Vue.js 的核心技术,提升解决实际问题的能力。 其他说明:文中提供了详细的代码示例和最佳实践建议,帮助开发者更好地理解和应用所学知识。同时,项目结构清晰,有助于初学者逐步掌握复杂的开发技巧。

    MATLAB实现DBN-RBF深度置信网络结合RBF神经网络多输入单输出回归预测的详细项目实例(含完整的程序,GUI设计和代码详解)

    内容概要:本文介绍了MATLAB实现DBN-RBF深度置信网络结合RBF神经网络多输入单输出回归预测的详细项目实例。项目旨在通过深度置信网络(DBN)和径向基函数神经网络(RBF)的结合,设计出一种高效的回归预测模型,以应对高维数据和非线性关系的挑战。DBN用于无监督特征提取,RBF用于快速回归,两者结合显著提升了预测精度和模型泛化能力。文中详细描述了项目的背景、目标、挑战、解决方案、模型架构、代码实现、GUI设计、性能评估及未来改进方向。 适合人群:具备一定编程基础,对机器学习和深度学习有一定了解的研发人员,尤其是从事金融预测、医疗健康、智能制造等领域的工程师和技术人员。 使用场景及目标:①解决高维数据的特征提取难题,提升非线性回归的拟合精度;②通过无监督学习与快速训练能力的结合,提高模型的预测精度和泛化能力;③应用于金融预测、医疗健康、智能制造等多个领域,提供高效的回归预测工具;④通过实时数据流处理和GPU加速推理,确保系统在实时应用中的快速响应。 其他说明:此项目不仅提供了详细的理论分析和代码实现,还涵盖了系统架构设计、模型部署与应用、安全性与用户隐私保护等方面的全面指导。通过结合其他深度学习模型、多任务学习、增量学习等技术,项目具备广阔的扩展性和应用前景。系统还支持自动化CI/CD管道、API服务与业务集成、前端展示与结果导出等功能,确保了系统的高可用性和易用性。

    工业自动化中两轴同步控制的高精度实现及其应用

    内容概要:本文详细介绍了在工业自动化领域中,针对高速缠绕与横向动作往返排线进给设备的两轴同步控制技术。主要内容涵盖硬件配置、动态补偿算法、配方管理、气缸控制以及速度滤波等方面的技术细节。文中强调了通过动态补偿算法将往返误差控制在极小范围内,利用结构体数组存储不同线径的工艺参数,确保不同型号间的快速切换,并采用二阶滤波算法降低机械冲击。此外,还讨论了气缸与运动轴的协同控制,确保物料夹持的精确性和稳定性。最终实现了两轴同步误差控制在3个脉冲以内,良品率达到99.8%以上的优异表现。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对两轴同步控制有深入研究的需求者。 使用场景及目标:适用于需要高精度同步控制的工业生产设备,如绕线机、切割机等。主要目标是提高生产效率和产品质量,减少因同步误差导致的产品缺陷。 其他说明:文章不仅提供了详细的代码实现,还分享了许多实际调试的经验教训,强调了现场实测数据的重要性。同时,展示了系统的高度移植性,能够在不同品牌的PLC上快速部署和调试。

    SMS网格软件 10.0

    建模前期用到的打网格软件SMS10.0,非常好用,解压安装无需破解

    电子硬件开发:白光JBC245/T12/936-A1321/A1322 OLED焊台控制板四合一开发资料详解

    内容概要:本文详细介绍了白光JBC245/T12/936-A1321/A1322 OLED焊台控制板的开发资料,涵盖完整的C语言程序、原理图、PCB设计文件以及相关照片。资料中不仅提供了详细的硬件设计方案,如电源部分、传感器接口、OLED显示模块等,还包括了关键的PID温度控制算法、状态机式的菜单系统设计、硬件SPI驱动等软件实现细节。此外,文中还特别提到了一些开发中的注意事项和技术技巧,如抗积分饱和、温度响应优化、热电偶信号处理等。 适合人群:电子爱好者、硬件开发工程师、嵌入式系统开发者。 使用场景及目标:适用于想要深入了解焊台控制板设计与实现的技术人员,帮助他们快速掌握从硬件设计到软件编程的全流程,提高开发效率,减少调试时间。同时,也为新手提供了一个很好的学习平台,通过实际案例加深对嵌入式系统开发的理解。 其他说明:资料包内含完整的源代码、原理图、PCB设计文件及校准文档,支持多种焊咀类型的自动识别和温度控制,确保了系统的灵活性和实用性。

    Solid Works软件的模型资料

    Solid Works软件的模型资料

    车辆ACC系统的MPC控制算法及其Carsim-Matlab联合仿真实现

    内容概要:本文详细探讨了车辆自适应巡航控制系统(ACC)的设计与实现,特别是针对前车切入这一关键场景。文中介绍了MPC(模型预测控制)算法的工作原理及其在ACC系统中的应用,强调了该算法能够在保证乘车舒适性的前提下,快速减小车距和速度误差。文章还展示了如何使用Carsim 16和Matlab 16B进行联合仿真,具体包括车辆动力学建模、MPC控制器的搭建、目标函数和约束条件的定义,以及一些实用的代码片段。此外,作者分享了在实际调试过程中遇到的问题及解决方案,如传感器延迟、加速度约束设置不当等,并通过实验验证了所提方法的有效性。 适合人群:从事汽车工程、自动化控制领域的研究人员和技术人员,尤其是对智能交通系统感兴趣的读者。 使用场景及目标:适用于希望深入了解ACC系统内部工作机制的研究人员,以及需要掌握MPC算法在实际工程项目中应用的技术人员。目标是帮助读者理解并能够独立实现类似的控制系统,提升车辆行驶的安全性和舒适性。 其他说明:文章不仅提供了详细的理论解释,还包括了许多具体的代码实例,便于读者理解和实践。同时,作者还分享了一些宝贵的实践经验,有助于读者避开常见的陷阱。

    Qt双路串口通信协议解析与实现:帧头帧尾处理、数据保存及配置管理

    内容概要:本文详细介绍了基于Qt5开发的双路串口通信框架,涵盖帧头帧尾解析、数据保存、ini配置与设备通信开发等方面。文中展示了如何通过状态机驱动的方式高效处理数据包,确保通信系统的健壮性和稳定性。此外,还讨论了动态双路串口配置、数据持久化策略以及配置文件管理的具体实现方法。该框架已在多个工业场景中成功应用,表现优异。 适合人群:具有一定Qt开发经验的研发人员,尤其是从事工业设备调试和嵌入式开发的技术人员。 使用场景及目标:适用于需要同时监控多个串口数据的工业设备调试场景,旨在提供稳定可靠的双路串口通信解决方案,帮助技术人员快速理解和实现复杂的串口通信协议。 其他说明:文中提供了大量代码片段和实战技巧,强调了协议处理层与业务逻辑的解耦设计,便于二次开发和协议扩展。

    我到测试文件,用于测试用的哈

    我到测试文件,用于测试用的哈

    【自媒体生态】AI流量智能体服务:内容创作与优化多功能工具集成系统设计了文档的主要内容

    内容概要:文章介绍了自媒体生态下AI流量智能体服务,旨在解决自媒体内容创作和流量获取中的难题。AI智能体作为低成本甚至零成本的高效助手,能生成高质量的文字、音频、图片和视频内容,尤其在内容仿写、改写、爆款内容生成方面表现突出。文中具体展示了AI工具在短视频、公众号、小红书图文和私域营销等领域的应用实例,如一键改写抖音文案并生成音频、快速提取并分析博主视频文案、将抖音内容转换为小红书风格内容等。此外,还提供了个性化定制选项,如自定义工作流、调整文案风格等,极大提高了内容创作效率。 适合人群:自媒体从业者、企业营销人员以及需要提高内容创作和流量获取效率的相关人士。 使用场景及目标:①利用AI工具快速生成和优化各类自媒体平台(如抖音、小红书、公众号)所需的文字、图片、音频、视频等内容;②通过分析爆款内容逻辑,生成吸引用户的标题和文案,提升作品的曝光率和吸引力;③借助AI智能体实现多流程自动化操作,如自定义数据来源、修改写作风格等,提高工作效率。 其他说明:AI智能体不仅能生成高质量内容,还能根据用户需求进行个性化定制,支持多种内容形式的互转,帮助用户更好地适应不同平台的特点。在使用过程中,应充分利用AI工具提供的各项功能,结合自身需求,灵活调整参数设置,以达到最佳效果。

    量子器件仿真:量子通信器件仿真.zip

    量子器件仿真:量子通信器件仿真.zip

    ABAQUS与FRANC3D联合仿真在可靠性与机构疲劳研究中的应用:裂纹扩展、残余应力及腐蚀分析

    内容概要:本文详细介绍了ABAQUS与FRANC3D联合仿真在可靠性与机构疲劳研究中的应用。首先概述了这两种软件的特点及其联合仿真的优势,随后具体探讨了单细节和多细节裂纹扩展分析的方法,包括模型创建、边界条件设定和裂纹扩展路径模拟。接着,文章深入讲解了闭合效应、残余应力和腐蚀裂纹扩展的分析方法,展示了如何通过接触属性、热-结构耦合分析和用户子程序(UMAT)来模拟这些现象。此外,还涉及了疲劳寿命预测、应力强度因子和裂纹扩展速率的计算,以及共振疲劳的研究。最后,作者分享了一些实用的编程技巧和经验,帮助研究人员更好地编写相关文献并优化仿真流程。 适合人群:从事材料科学、机械工程、航空航天等领域研究的专业人士,尤其是关注结构疲劳和可靠性分析的研究人员和技术人员。 使用场景及目标:适用于需要精确模拟裂纹扩展、评估材料和结构疲劳寿命的研究项目。主要目标是提供详细的仿真方法和实践经验,帮助研究人员提高仿真精度和效率。 其他说明:文中不仅提供了具体的代码示例,还分享了许多实际操作中的注意事项和技巧,有助于读者避免常见错误并优化仿真效果。

Global site tag (gtag.js) - Google Analytics