zoukankan      html  css  js  c++  java
  • Java 参数包

    简介

    中大型Java项目普遍需要调配许多参数,本文引入参数包,用系统快捷的方法管理参数。效果如下:

    Poster	[options...]	[arguments...]
     -dictFile VAL       : Specify file of dictionary
     -filterLemmaCount N : Specify the least sum of leammas each word
     -filterLine N       : Specify the least sum of words tagged each line
     -length N           : Specify the sum of source lines
     -sourceFile VAL     : Specify source corpus 
     -workPath VAL       : Specify path of workspace 
    

    外接包

    • 1.下载 args4j-2.0.6.jar 放到工程lib文件夹下.
    • 2.Build Path -> Add External Archives -> 选中项目lib下的args4j包.

    使用

    • 1.Options类
    package poster;
    
    import org.kohsuke.args4j.*;  //导入包
    
    public class Options{
    	
    	
    	@Option(name = "-workPath", usage = "Specify path of workspace ")
    	public String workPath = "/home/cyno/corpus/large2/";
    	
    	@Option(name = "-sourceFile", usage = "Specify source corpus ")
    	public String sourceFile = "large2.en";
    	
    	@Option(name = "-dictFile", usage = "Specify file of dictionary")
    	public String dictFile = "index.adj";
    	
    	@Option(name = "-length", usage = "Specify the sum of source lines")
    	public Integer length = 100000;
    	
    	@Option(name = "-filterLine", usage = "Specify the least sum of words tagged each line")
    	public Integer filterLine = 4;
    	
    	@Option(name = "-filterLemmaCount", usage = "Specify the least sum of leammas each word")
    	public Integer filterLemmaCount = 10;
    		
    }
    
    • 2.Main调用
    package poster;
    
    import org.kohsuke.args4j.*;
    
    public class Poster{
    	public static void main(String [] args){
    		
    		Options option = new Options();
    		CmdLineParser parser = new CmdLineParser(option);
    		
    		if (args.length == 0){
    			System.out.println("Poster	[options...]	[arguments...]");
    			parser.printUsage(System.out);
    			return;
    		}
    		
                 // ...........
    	}
    }
    
    • 3.参数使用
    public boolean init(Options option) {
    		
    		if (!option.workPath.endsWith(File.separator)){
    			option.workPath += File.separator;
    		}
    		this.option = option;
    		this.sourceFile = option.workPath + option.sourceFile;
    		this.length = option.length;
    		this.filter = option.filterLine;
    		this.coreFile = option.workPath + "core.dat";
    		this.withOrderFile = option.workPath + "withOrder.dat";
    		this.lemmaPath = option.workPath + "lemmas/";
    		try{
    			File lemmaPathFile = new File(this.lemmaPath);
    			if (!lemmaPathFile.isDirectory()){
    				lemmaPathFile.mkdirs();
    			}
    		}catch(Exception e){
    			System.out.println("Error When build lemma path!" + e.getMessage());
    			e.printStackTrace();
    		}
    		
    		
    		// Read Dictionary
    		dict.init(option.workPath+option.dictFile, option.workPath+"wordList.dat", option.filterLemmaCount);
    		dict.readDict();
    
    		return true;
    	}
    
  • 相关阅读:
    0129 System类 Math类 Arrays类 大数据运算
    0127 基本类型包装类
    'telnet' 不是内部或外部命令,也不是可运行的程序 解决方案
    删除时报org.springframework.dao.DataIntegrityViolationException
    mapper自动识别驼峰配置 spring MVC
    spring Security如何debug源码
    公司tomcat项目启动
    java.util.ConcurrentModificationException: null 异常解决
    @Transactional 学习
    mangoDB初探
  • 原文地址:https://www.cnblogs.com/cyno/p/4448293.html
Copyright © 2011-2022 走看看