簡體   English   中英

java.lang.NoClassDefFoundError maven + eclipse

[英]java.lang.NoClassDefFoundError maven + eclipse

請對此人需要幫助.....嘗試利用以下工件: artifactory-java-client-services我的pom文件如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>ArtRepoClient</groupId>
    <artifactId>ArtRepoClient</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.1.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.jfrog.artifactory.client</groupId>
            <artifactId>artifactory-java-client-services</artifactId>
            <version>0.13</version>
        </dependency>
    </dependencies>

</project>

我在/ src / main / java中有一個帶有以下摘錄代碼的類:

 public static void main(String[] args) { Artifactory artifactory = ArtifactoryClient.create(url, username,password); } 

代碼可以正常編譯,但在運行時似乎存在類加載問題:如下所示:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/client/methods/HttpUriRequest
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413)
    at java.lang.Class.getDeclaredConstructors(Class.java:1855)
    at org.codehaus.groovy.reflection.CachedClass$2$1.run(CachedClass.java:69)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.codehaus.groovy.reflection.CachedClass$2.initValue(CachedClass.java:66)
    at org.codehaus.groovy.reflection.CachedClass$2.initValue(CachedClass.java:64)
    at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
    at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33)
    at org.codehaus.groovy.reflection.CachedClass.getConstructors(CachedClass.java:258)
    at groovy.lang.MetaClassImpl.<init>(MetaClassImpl.java:189)
    at groovy.lang.MetaClassImpl.<init>(MetaClassImpl.java:193)
    at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createNormalMetaClass(MetaClassRegistry.java:157)
    at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createWithCustomLookup(MetaClassRegistry.java:147)
    at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.create(MetaClassRegistry.java:130)
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:175)
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:192)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(MetaClassRegistryImpl.java:309)
    at org.codehaus.groovy.runtime.InvokerHelper.getMetaClass(InvokerHelper.java:806)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.createCallConstructorSite(CallSiteArray.java:84)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190)
    at org.jfrog.artifactory.client.ArtifactoryClient.create(ArtifactoryClient.groovy:23)
    at com.cs.etl.rsclient.TestMain.main(TestMain.java:16)
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.methods.HttpUriRequest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 25 more

我的classpath( System.getProperty("java.class.path"); )顯示了相關的jar:C:\\ Users \\ Administrator.m2 \\ repository \\ org \\ apache \\ httpcomponents \\ httpclient \\ 4.2.1 \\ httpclient-4.2.1 .jar會在運行時加載,如下所示,所以我不明白為什么會出現上述問題。

C:\Users\Administrator\Workspaces\MyEclipse Blue 2014\ArtifactoryRepClient\target\classes
**C:\Users\Administrator\.m2\repository\org\apache\httpcomponents\httpclient\4.2.1\httpclient-4.2.1.jar**
C:\Users\Administrator\.m2\repository\org\jfrog\artifactory\client\artifactory-java-client-services\0.13\artifactory-java-client-services-0.13.jar
C:\Users\Administrator\.m2\repository\org\jfrog\artifactory\client\artifactory-java-client-api\0.13\artifactory-java-client-api-0.13.jar
C:\Users\Administrator\.m2\repository\org\codehaus\groovy\groovy\2.1.0\groovy-2.1.0-indy.jar
C:\Users\Administrator\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar
C:\Users\Administrator\.m2\repository\org\ow2\asm\asm-tree\4.0\asm-tree-4.0.jar
C:\Users\Administrator\.m2\repository\org\ow2\asm\asm-commons\4.0\asm-commons-4.0.jar
C:\Users\Administrator\.m2\repository\org\ow2\asm\asm\4.0\asm-4.0.jar
C:\Users\Administrator\.m2\repository\org\ow2\asm\asm-util\4.0\asm-util-4.0.jar
C:\Users\Administrator\.m2\repository\org\ow2\asm\asm-analysis\4.0\asm-analysis-4.0.jar
C:\Users\Administrator\.m2\repository\org\codehaus\groovy\groovy-json\2.1.0\groovy-json-2.1.0-indy.jar
C:\Users\Administrator\.m2\repository\org\codehaus\groovy\groovy\2.1.0\groovy-2.1.0.jar
C:\Users\Administrator\.m2\repository\org\codehaus\groovy\groovy-xml\2.1.0\groovy-xml-2.1.0-indy.jar
C:\Users\Administrator\.m2\repository\org\codehaus\groovy\modules\http-builder\http-builder\0.6\http-builder-0.6.jar
C:\Users\Administrator\.m2\repository\org\apache\httpcomponents\httpcore\4.2.1\httpcore-4.2.1.jar
C:\Users\Administrator\.m2\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar
C:\Users\Administrator\.m2\repository\commons-codec\commons-codec\1.6\commons-codec-1.6.jar
C:\Users\Administrator\.m2\repository\net\sf\json-lib\json-lib\2.3\json-lib-2.3-jdk15.jar
C:\Users\Administrator\.m2\repository\commons-beanutils\commons-beanutils\1.8.0\commons-beanutils-1.8.0.jar
C:\Users\Administrator\.m2\repository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar
C:\Users\Administrator\.m2\repository\commons-lang\commons-lang\2.4\commons-lang-2.4.jar
C:\Users\Administrator\.m2\repository\net\sf\ezmorph\ezmorph\1.0.6\ezmorph-1.0.6.jar
C:\Users\Administrator\.m2\repository\xml-resolver\xml-resolver\1.2\xml-resolver-1.2.jar
C:\Users\Administrator\.m2\repository\net\sourceforge\nekohtml\nekohtml\1.9.17\nekohtml-1.9.17.jar
C:\Users\Administrator\.m2\repository\xerces\xercesImpl\2.9.1\xercesImpl-2.9.1.jar
C:\Users\Administrator\.m2\repository\org\slf4j\slf4j-api\1.7.2\slf4j-api-1.7.2.jar
C:\Users\Administrator\.m2\repository\org\slf4j\log4j-over-slf4j\1.7.2\log4j-over-slf4j-1.7.2.jar
C:\Users\Administrator\.m2\repository\org\slf4j\jcl-over-slf4j\1.7.2\jcl-over-slf4j-1.7.2.jar
C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-classic\1.0.9\logback-classic-1.0.9.jar
C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-core\1.0.9\logback-core-1.0.9.jar
C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.0.4\jackson-core-2.0.4.jar
C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.0.4\jackson-annotations-2.0.4.jar
C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.0.4\jackson-databind-2.0.4.jar
C:\Users\Administrator\.m2\repository\junit\junit\4.11\junit-4.11.jar
C:\Users\Administrator\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar

好的,終於解決了該問題,由於某種原因,似乎存在一個安全約束,該約束阻止了JVM從以下路徑讀取文件:C:\\ Users \\ Administrator.m2 \\ repository \\ org \\ apache \\ httpcomponents \\ httpclient \\ 4.2.1 \\ httpclient-4.2.1.jar,但是一旦我從那里將其復制到另一個路徑並將其添加到它可以工作的類路徑中,就可以了。 奇怪的是為什么它只影響這個jar,因為其余的都是從同一路徑加載的,即c; \\ Users ....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM