我们在写JAVA程序时,很多时候运行程序的参数是需要动态改变的

测试时一系列参数,运行时一系列参数

又或者数据库地址也需要配一套参数,以方便今后的动态部署

这些变量的初始化,我们在写小DEMO时完全可以写死在JAVA文件中

但程序需要发布或者局部部署时,这些参数就需要脱离程序代码了

我们有多种存放参数的方式,比如数据库、XML文件又或者直接是txt文件

现在介绍一种使用JAVA,简单方便的参数读取方式

.properties文件,我们并不陌生,很多优秀的框架中就能看到它的存在,比如Hibernate

在src文件目录下,新建一个后缀为.properties的文件,用任意文本编辑器打开它,就可以使用键值对的方式设置您程序的运行参数了

类似于这样

#wangqun fd60e46db0dc119cfea740c3375fd7c4
#toAccountId=fd60e46db0dc119cfea740c3375fd7c4
#huangshi 1645a78135328c4b
toAccountId=1645a78135328c4b
#tangwei 6c0f7514f4bd0016
#shixiaoping 98f30bad9e6789af
#toAccountId=6c0f7514f4bd0016
#toAccountId=6c0f7514f4bd0016,1645a78135328c4b,98f30bad9e6789af #cron=0 32 8-11,14-20/1 * * ?
cron=0/10 * * * * ? fileName=d\:/\u59DC\u5830\u5468\u79EF\u5206\u7BA1\u63A7\u53CA\u53CC\u767E\u5146\u8BAD\u7EC3\u84250830.xlsx
sheetName=\u6C47\u603B
fromIndex=0,1
toIndex=48,12
#fromIndex=1,4
#toIndex=13,12 dirPath=C:/apache-tomcat-8.0.28/webapps/test/
urlPath=http://61.132.43.176:8081/test/ database_host=132.240.9.36
database_port=1521
database_user=jy
database_name=yxdb
database_pwd=OVQwu8QSm4CWktEZdnjtxg== sql_str=select * from hs_bb_rbb r order by r.no
modify_sheet=sheet1
modify_from=1,0
time_cell=1,4

注意一下几点:

一、用#号表示注释,可以多录入一些配置可能,运行时动态注释或者打开,比较方便

二、.properties明文存储,所以敏感字符需要加密,比如数据的密码

三、遇到中文,是个棘手的问题,最简单的方式是使用MyEclipse的properties文件编辑器来写入,会自动将中文转码

四、所有参数只可以以字符串形式存储,至于类型转换,请在JAVA中解析完成

五、适用于只读不写的参数配置,如果程序运行过程中需要修改这些环境参数,建议考虑数据库读写方式,而不是properties

下面是JAVA程序,mian函数一开始就可以对这个properties文件进行读取

public static void main(String[] args) throws Exception{
//读取properties配置文件
Properties prop=new Properties();
prop.load(QuartzDemo.class.getResourceAsStream("/set.properties"));
String cron=prop.getProperty("cron","0/10 * 8-7 * * ?");
String fileName=prop.getProperty("fileName","d:/2014年1月营销活动报表140116.xlsx");
String sheetName=prop.getProperty("sheetName", "支局视图");
String dirPath=prop.getProperty("dirPath","C:/apache-tomcat-8.0.28/webapps/test/");
String urlPath=prop.getProperty("urlPath","http://61.132.43.176:8081/test/");
String fromIndexStr=prop.getProperty("fromIndex","0,0");
String toIndexStr=prop.getProperty("toIndex", "17,20"); String database_host=prop.getProperty("database_host","");
String database_port=prop.getProperty("database_port","");
String database_user=prop.getProperty("database_user","");
String database_name=prop.getProperty("database_name","");
String database_pwd=DESHelper.decrypt(prop.getProperty("database_pwd",""),"newflypig");
String sql_str=prop.getProperty("sql_str","");
String modify_sheet=prop.getProperty("modify_sheet","");
String modify_fromStr=prop.getProperty("modify_from","0,0"); String[] splitStr=fromIndexStr.split(",");
int[] fromIndex={Integer.parseInt(splitStr[0]),Integer.parseInt(splitStr[1])};
splitStr=toIndexStr.split(",");
int[] toIndex={Integer.parseInt(splitStr[0]),Integer.parseInt(splitStr[1])};
splitStr=modify_fromStr.split(",");
int[] modify_from={Integer.parseInt(splitStr[0]),Integer.parseInt(splitStr[1])}; }

Properties类提供了非常便捷的读取properties文件的操作,还包括一些默认值的配置,再次需要注意的是,只能读String,如果遇到其他数据类型,聪明的你一定知道怎样用String类型转换这些类型吧。

给你的JAVA程序配置参数(Properties的使用)的更多相关文章

  1. java程序启动参数-D含义详解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt407 java程序启动参数 -D是用来做什么的呢?去查询了一下官方解释: S ...

  2. Java程序运行参数

    Java主函数形式:public static void main(String[] args){......} 也就是说可以向Java程序传递一个String[]. 1.在IDEA中debug.ru ...

  3. java程序启动参数

    例如 启动进程如下 /home/work/noah/ccs/jc-controller/jdk1.7.0_55/bin/java -Xmx4096m -Xms4096m -Xmn1024m -XX:+ ...

  4. liunx 定时任务执行java程序配置流程

    java jar包使用build fat jar进行打包 ------------------liunx任务创建--------------------------- 1.查看现有任务计划: cron ...

  5. java -jar 配置参数写法说明

    java -Dxxx=test  -jar xxx.jar  (放在-jar之前) 取值:System.getProperty("xxx") spring的@value(" ...

  6. 图说hibernate注释--java里配置参数(一.1)

    **************************************************************[来自我另一博文]

  7. Maven编译Java程序配置

    Hive 需要在工程里添加的Jar包: hadoop-2.2.0/share/hadoop/common/hadoop-common-2.2.0.jar $HIVE_HOME/lib/hive-exe ...

  8. 第一次尝试学习java 安装jdk 与配置环境变量 写第一个java程序 并运行

    第一次学习java,今天知道了java之父叫  詹姆斯.高司令 其它的记不住太多,首先我们先来安装jdk 百度搜索jdk12   (现在的jdk为12版本)安装稳定版 找到javaSE12X..  下 ...

  9. 一劳永逸Java环境配置,以及编写我的第一个Java程序

    Java环境配置,以及编写我的第一个Java程序 配置步骤 1.下载jdk 2.安装步骤 3.配置环境 4.我的第一个Java程序 配置步骤 网上的教程有很多,方法也都不尽相同.今天我就分享一下我的配 ...

随机推荐

  1. NodeJS -Express 4.0 用include取代partial

    在Express 4.0 下按如下方法设置: (1)运行cmd 输入:npm install express-partials -g (2)下载成功后.在app.js 中引用此插件   var par ...

  2. Java 8 VM GC Tunning Guide Charter 7-8-b

    第七章 并发gc Java 8提供两种并发gc,CMS和G1 Concurrent Mark Sweep (CMS) Collector This collector is for applicati ...

  3. WPF 多线程处理(4)

    WPF 多线程处理(1) WPF 多线程处理(2) WPF 多线程处理(3) WPF 多线程处理(4) WPF 多线程处理(5) WPF 多线程处理(6) 开始一个线程处理读取的文件并且更新到list ...

  4. Oppotunity land---China

    China is a land of opportunity.Following the development of China,every sector has made their contri ...

  5. 我的第一个python爬虫程序

    程序用来爬取糗事百科上的图片的,程序设有超时功能,具有异常处理能力 下面直接上源码: #-*-coding:utf-8-*- ''' Created on 2016年10月20日 @author: a ...

  6. H5下拉刷新特效demo,动画流畅

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  7. 利用Multi-Probe LSH构建ANN高维索引

    感谢大神们的无私奉献精神........因此笔者要坚持开源,专注开源,开源就像在HPU的考试中不像其他人作弊一样,长远来看,会有巨大收获. 一.背景介绍 1.1 相似性搜索简介 高维相似性搜索在音频. ...

  8. C# 读取枚举描述信息实例

    using System;using System.Collections;using System.Collections.Generic;using System.Linq;using Syste ...

  9. Oracle 10G 安装后 不能卸载, 不能打开Web管理....

    1. 不能卸载. 点击这个卸载.   提示:   解决方法: 右键卸载, 设置兼容性为XP. 就可以使用了.    2. oracle10g登录em后,提示"java.lang.Except ...

  10. Silverlight弹出层(转载)

    ChildWindow为Silverlight中的弹出子窗口 可以在项目新建子窗口文件: 相互传值: //父窗体向子窗体传值,需要在ChildWindow中构造函数进行传值ChildWindowTes ...