今天在学习打jar包。
主要目的是我想在windows下面测试通过了jar包后,再将其放在linux下运行。
我在windows下面通过cmd运行的时候出现了一个问题。我以普通的打jar的方式将jar包打出,但是当前目录引用了另外一个第三方的jar文件,所以导致我在运行的时候程序一直提示找不到那个第三方的jar包。于是我到网上找资料如何将jar包导入进来,主要是用到了下面的方式:
win32 java -Xbootclasspath/a: some.jar;some2.jar; -jar test.jar
unix
java -Xbootclasspath/a: some.jar:some2.jar: -jar test.jar
上面的摘抄来自
http://www.iteye.com/topic/332580。
但是程序还是报错。于是问了同事,他给我的解决方式是
InputStream inStream = Test.class.getResourceAsStream("/config/log4j.properties");
Properties props = new Properties();
props.load(inStream);
PropertyConfigurator.configure(props);
Properties props = new Properties();
props.load(inStream);
PropertyConfigurator.configure(props);
之前的语句是这样写的PropertyConfigurator.configure(Test.class.getResource("/config/log4j.properties").getFile());
改了之后将log的jar包放到运行的jar的目录下。然后再次运行程序,测试通过。
另外一个解决的方式是打包的时候选择打包成Runnable JAR file。这样就不会出现上面的问题了。
在此感谢我的两位同事。^-^~~