如何使用2个主要类和依赖项构建jar

时间:2017-04-07 13:50:30

标签: java spring jar

这是一个带有maven的弹簧核心项目。为了实现某些目标,我在这个项目中创建了两个主要类。这里使用Maven是因为这个项目需要很少的外部罐子。实施完成。

有什么问题?
我需要一个jar文件,使我能够通过命令提示符运行两个不同的主类。 外部库应该与jar捆绑在一起。

我不需要两个单独的可运行的jar来单独触发2个主要类。
用于开发的东西是
Java 1.7
弹簧芯4.2.2
Maven 3.3.9
日月火星

更新:
我运行下面的命令,但我收到错误,说无法找到beans.xml beans.xml位于jar

中的resources文件夹中


java -cp Batch_toc_browsing.jar; aa11_lib / * com.base.LaunchTocUpdate

D:\temp\toc_browsing batch>java -cp Batch_toc_browsing.jar;aa11_lib/* com.base.LaunchTocUpdate
log4j:WARN No appenders could be found for logger (com.base.TreeBuilder).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [
Beans.xml]; nested exception is java.io.FileNotFoundException: class path resource [Beans.xml] cannot be opened because it does not exist
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:344)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:252)
        at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:127)
        at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:93)
        at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129
)
        at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:605)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:509)
        at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
        at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
        at com.base.TreeBuilder.process(TreeBuilder.java:20)
        at com.base.LaunchTocUpdate.main(LaunchTocUpdate.java:8)
Caused by: java.io.FileNotFoundException: class path resource [Beans.xml] cannot be opened because it does not exist
        at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:330)
        ... 14 more

1 个答案:

答案 0 :(得分:0)

这不是我想要的答案,但这是利用jar来运行使用spring core开发的应用程序的一种可能方式。

我创建了一个可运行的jar但得到了异常(我在问题中提到过)。它是由于程序无法找到项目中存在的beans.xml,因为不知何故放在资源下的东西没有放入类路径中,我没有在spring web项目中遇到过这个问题。

是什么引发了这个问题?
我有 src / main / resources 文件夹中的所有configs(beans.xml)和属性以及其他属性文件。这些程序都没有检测到它们 的解决方案
我将所有配置文件和属性文件移动到 src / main / java 。事情开始奏效了。

这不是我想要的确切解决方案,因为我通过创建2个可运行的罐子来完成这项工作。一旦我得到我最初在我的问题中请求的输出,我将更新帖子。

感谢