【发布时间】:2014-04-09 06:50:51
【问题描述】:
我在这里遇到了一个问题。我需要创建一个spring批处理项目的jar文件。我从 Eclipse 将项目导出为可运行的 jar,但是当我尝试使用命令提示符运行 jar 时,它无法找到 jar 中的配置 xml 文件。我想出的解决方法是将配置文件复制到我拥有 jar 的同一文件夹中,但这绝对是不可取的。 当我在 eclipse 中将应用程序作为 java 应用程序运行时,它可以工作,但当我将应用程序转换为 jar 并从命令提示符运行它时,它不能工作。
这是我的主要课程:
public class RunApp {
public static void main(String[] args) {
String[] springConfig = { "hello-job.xml" };
ApplicationContext context = new ClassPathXmlApplicationContext(
springConfig);
JobLauncher jobLauncher = (JobLauncher) context.getBean("jobLauncher");
Job job = (Job) context.getBean("helloJob");
try {
JobExecution execution = jobLauncher.run(job, new JobParameters());
System.out.println("Exit Status : " + execution.getStatus());
} catch (Exception e) {
e.printStackTrace();
}finally{
((AbstractApplicationContext)context).close();
}
System.out.println("Done");
}
}
我需要一个解决方案,我可以将 ClassPathXmlApplicationContext 中的“hello-job.xml”文件作为流传递,或者以任何方式从形成的 jar 中访问我的 xml 文件。
我的 hello-job.xml 位于 src/main/resources/hello-job.xml 下
【问题讨论】:
-
您的
hello-job.xml是否存在于您生成的 JAR 文件中? -
也可以试试:
new ClassPathXmlApplicationContext(new String[]{"classpath*:hello-job.xml"});。 -
是的,当我使用 winzip 解压我的 jar 时,我可以在 jar 中看到所需的 xml,我的代码仍然找不到从命令提示符运行代码的 jar..
-
它可以从 Eclipse 运行,我已将它添加到我的类路径中:( org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO: 从类路径资源加载 XML bean 定义 [hello-job. xml] 线程“main”中的异常 java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 原因:java.io.FileNotFoundException:类路径资源 [hello-job.xml] 无法打开,因为它不存在
标签: java xml eclipse spring command-prompt