java - 公共(public)链部署

标签 java maven apache-commons

我使用 Java 开发了一个应用程序

    <dependency>
        <groupId>commons-chain</groupId>
        <artifactId>commons-chain</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>commons-digester</groupId>
        <artifactId>commons-digester</artifactId>
        <version>2.1</version>
    </dependency>

部署的 jar 会生成:

    Sep 09, 2015 4:26:17 PM org.apache.commons.digester.Digester startElement
SEVERE: Begin event threw exception
java.lang.ClassNotFoundException: lib.cF.gF.CE
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at org.apache.commons.digester.ObjectCreateRule.begin(ObjectCreateRule.java:210)
        at org.apache.commons.digester.Rule.begin(Rule.java:177)
        at org.apache.commons.digester.Digester.startElement(Digester.java:1583)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
        at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
        at org.apache.commons.digester.Digester.parse(Digester.java:1990)
        at org.apache.commons.chain.config.ConfigParser.parse(ConfigParser.java:190)
        at lib.Utilities.CatalogLoader.getCatalog(CatalogLoader.java:25)
        at main.PFChain.executePFChain(PFChain.java:27)
        at main.Main.main(Main.java:30)

我已经读过 WebSphere ClassNotFoundException with deployed dynamic web project我可能还必须将 *digister.jar 复制到我的 UNIX 系统。

但我不知道在哪里,因为这不是一个网络应用程序。

编辑: 按照@Amila的建议,我跑了

user@system:/folder$ java -cp "*.jar" main.Main        Error: Could not find or load main class main.Main

如何让我的 jar 也在服务器上运行?

最佳答案

您需要在类路径中包含您使用过的库 jar。

类似于:

java -cp 'program.jar:library1.jar:library2.jar' yourpackage.YourClass

由于您使用的是 Maven,因此可以使用 maven dependency plugin 复制所有依赖项,并将它们全部存储在 lib 目录中。

然后你可以这样做(Java 6+):

java -cp 'program.jar:lib/*' yourpackage.YourClass

关于java - 公共(public)链部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32478627/

相关文章:

java - 如何使用 DurationFormatUtils 类获得所需格式的结果?

java - Android/Java -- 将简单文本发布到 Facebook 墙上?

c++ - C++的类似Maven的依赖管理?

Java + Maven + 制作可执行 jar + 线程 "main"java.lang.NoClassDefFoundError : org/slf4j/LoggerFactory 中的异常

maven - 在编译器插件之前调用自定义 Maven 插件

java - 尝试解析 apache-commons-chains 的目录 XML 时出现 EmptyStackException

java - 使用 apache IOUtils.copy() 和 setContent() 复制文档内容

java - 在构建我的应用程序 jar 时包括外部 jar

java - 如何在南面板中放置 2 个带有边框的按钮?

java - 无法从同一网络java访问webservice