2015-03-27 9 views
5

चलाते समय मुझे पता है कि इस सवाल से पहले विभिन्न रूपों में पूछा गया है, लेकिन मैंने सभी उत्तरों की जांच की है और मैं सोच हमने उन्हें सभी को बाहर कर दिया है।IntelliJ NoClassDefFoundError IntelliJ टेस्ट

त्रुटि:

java.lang.NoClassDefFoundError: com/lgc/infra/geometry/Coord1Val 
at com.lgc.infra.geometry.Coords.coord(Coords.java:89) 
at com.lgc.infra.geometry.Coords.<clinit>(Coords.java:24) 
at com.geoteric.lfd.eos.ReallyBasicTest.make_a_simple_coord(ReallyBasicTest.java:17) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) 
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) 
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) 
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) 
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) 
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:300) 
at org.junit.runners.Suite.runChild(Suite.java:128) 
at org.junit.runners.Suite.runChild(Suite.java:24) 
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) 
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) 
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) 
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) 
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) 
at org.junit.runners.ParentRunner.run(ParentRunner.java:300) 
at org.junit.runner.JUnitCore.run(JUnitCore.java:157) 
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78) 
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212) 
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140) 
Caused by: java.lang.ClassNotFoundException: com.lgc.infra.geometry.Coord1Val 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    ... 37 more 

कोड:

package com.geoteric.lfd.eos; 

import com.lgc.infra.geometry.Coord3; 
import com.lgc.infra.geometry.Coords; 
import org.junit.Test; 

import static org.hamcrest.CoreMatchers.equalTo; 
import static org.junit.Assert.assertThat; 

/** 
* Created by TClarke on 27/03/2015. 
*/ 
public class ReallyBasicTest { 
    @Test 
    public void make_a_simple_coord() 
    { 
     Coord3 c3 = Coords.coord(1.0f, 2.0f, 3.0f); 
     assertThat(c3.getX(), equalTo(1.0)); 
    } 
} 

पथ classfile रहे हैं:

D:\ffa_dev\link-for-decisionspace\ext\dssdk\com_lgc_dsp-core_sdk.jar!\com\lgc\infra\geometry\Coords.class 

मॉड्यूल संरचना का स्क्रीनशॉट:

परीक्षण रनर कॉन्फ़िग का स्क्रीनशॉट:

संबंधित कोड कार्यों ठीक जब वास्तविक परियोजना में बनाया गया। तो, मुझे क्या याद आ सकता है पर कोई सलाह?

उत्तर

0

मुझे लगता है कि आपका .iml अद्यतन नहीं है। क्या आपने अपनी परियोजना/मॉड्यूल .iml फ़ाइलों को फिर से बनाने का प्रयास किया है। इसके Maven परियोजना आप आदेश से इसे पुन: कर सकते हैं

mvn idea:idea 

.iml अद्यतन किया जाता है परियोजना को ताज़ा और परीक्षण

1

यह upvoted गया चलाने रहे हैं, तो मैं आप जानते हैं कि हम अंततः बाहर काम दूँगा के बाद ।

हम किसी अन्य एप्लिकेशन के लिए एपीआई का उपयोग करके एक प्लगइन लिख रहे थे। जब आप प्लगइन को तैनात करते हैं, तो यह एप्लिकेशन में सभी परिभाषाओं तक पहुंच प्राप्त करता है। हालांकि, यूनिट परीक्षण अलगाव में चल रहे हैं, इसलिए विशेष वर्ग जिन्हें केवल इंटरफेस और कारखानों के माध्यम से परिभाषित किया जा सकता है।

इस उदाहरण के लिए:

Coord3 c3 = Coords.coord(1.0f, 2.0f, 3.0f); 

दोनों Coord3 और coords परिभाषित कर रहे हैं। लेकिन कॉम/एलजीसी/इन्फ्रा/ज्यामिति/कोऑर्ड 1 वैल, जिसे कॉर्ड में उपयोग किया जाता है, वास्तव में हमारे लाइब्रेरी पथ में कभी परिभाषित नहीं किया जाता है (एपीआई जार स्पष्ट रूप से वहां इसके साथ बनाया गया था, लेकिन यह आपूर्ति नहीं की गई थी)।

कई संभावित कामकाज हैं, उम्मीद है कि इस प्रश्न पर ठोकर वाले स्मार्ट लोग उनमें से कुछ के साथ टिप्पणी करेंगे। जिस के साथ हम गए थे, वह है कि कॉर्ड को एक नकली फैक्ट्री में लपेटना है जो नकली (Coord3.class) देता है, ताकि इस मुद्दे को प्रदर्शित करने वाले हिस्सों को दूर कर दिया जा सके।