JAVA之jar包读取外面的配置文件和引入其它的jar

阅读更多

1、Java文件 Test.java
package com;

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;

import org.apache.commons.lang.StringUtils;

public class Test {
	public static void main(String[] args) {
		 try {
			 FileInputStream outIs = new FileInputStream("out.properties");  
			 InputStream inIs = Test.class.getClassLoader().getResourceAsStream("in.properties"); 
			 Properties outPro = new Properties();
			 outPro.load(outIs);
			 Properties inPro = new Properties();
			 inPro.load(inIs);
			 if(StringUtils.isNotEmpty((String) outPro.get("name"))){
				 System.out.println(outPro.get("name"));
			 }
			 System.out.println("name:"+outPro.get("name")+" age:"+outPro.getProperty("age"));
			 System.out.println("name:"+inPro.get("name")+" age:"+inPro.getProperty("age"));
		} catch (Exception e) {
			e.printStackTrace();
		}  
	}
}

先将Test编译成class文件
javac Test.java
2、jar包内的配置文件in.properties
name=xiaohong
age=14


3、jar包外的配置文件out.properties
name=xixi
age=57


4.编写MANIFEST.MF
Manifest-Version: 1.0
Class-Path: lib/commons-lang-2.5.jar
Created-By: jynine
Main-Class: com.Test

执行jar命令
jar cvfm aaa.jar MANIFEST.MF  .

打包过后查看打包过后的jar目录 
jar tf aaa.jar 

如下

META-INF/
META-INF/MANIFEST.MF
com/
com/Test.class
in.properties
MANIFEST.MF
在创建一个lib文件夹,lib下我们放置我们引用了的包:commons-lang-2.5.jar
将out.properties和aaa.jar放在同一目录执行下面命令:
java -jar aaa.jar

得到以下结果:
xixi
name:xixi age:57
name:xiaohong age:14

你可能感兴趣的:(java,jar)