平时开发,运行测试类,都直接使用开发平台:Run as->.....,此次有个自动服务,为了便于测试,测试人员要求能包装成可独立运行单个应用,自己就马上添加main函数包装,并在eclipse中Run as->Java Application顺利通过,因为要发布到测试环境,所以需要提供可运行的java命令串,折腾了大半天,终于写出正确命令串,感觉代码越写人越傻人, :( ,main函数:
window
WebContent\WEB-INF>java -cp ./classes;./lib/* com.xx.xx.job.XXJob
linux&unix
WebContent\WEB-INF>java -cp ./classes:./lib/* com.xx.xx.job.XXJob
注意:
(1)./classes和./lib/*的先后顺序很重要:这涉及到代码中使用相对路径加载如properties文件,到底是使用lib/*.jar中的文件还是classes目录下的文件
(2)刚开始写成./lib/*.jar,这个方式压根无法正确识别lib下的jar包,画蛇添足
public static void main(String[] args) {
String configPath = "classpath:applicationContext-xx.xml, classpath:applicationContext.xml, classpath:applicationContext-xx.xml, classpath:applicationContext-xx.xml, classpath:com/xx/xx/app-xx.xml";
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(configPath.split("[,\\s]+"));
SystemBuffer.init();
XXJob job = context.getBean(XXJob.class);
job.runJob();
System.exit(1);
}
window
WebContent\WEB-INF>java -cp ./classes;./lib/* com.xx.xx.job.XXJob
linux&unix
WebContent\WEB-INF>java -cp ./classes:./lib/* com.xx.xx.job.XXJob
注意:
(1)./classes和./lib/*的先后顺序很重要:这涉及到代码中使用相对路径加载如properties文件,到底是使用lib/*.jar中的文件还是classes目录下的文件
(2)刚开始写成./lib/*.jar,这个方式压根无法正确识别lib下的jar包,画蛇添足