2014-06-20 5 views
0

기본 패키지를 사용하여 Eclipse에서 프로젝트가 작성되었습니다. 잘 돌아갑니다. 프로젝트에서 새 패키지를 만들고 모든 클래스 파일을 선택하고 Refactor : 새 패키지로 이동했습니다 (자동 링크 조정 또는 호출 됨).Eclipse 프로젝트를 기본 패키지에서 새 빈 패키지로 이동 한 후 ClassNotFoundException이 발생했습니다.

프로그램을 시작하면 모든 것이 정상적으로 보입니다. 그러나 데이터 파일을 읽으려고하면 ClassNotFoundException과 충돌합니다.

"누락 된"클래스는 을 확장하고 하나의 방법을 추가하고 overriding clone()을 추가합니다. 변수를 추가하지는 않습니다.

재미있는 점은 클래스가 명백한 문제없이 프로그램을 초기화하는 동안 두 번 인스턴스화된다는 것입니다. 예외를 얻은 파일에서 일련 화 된 버전을 읽으려고 할 때만입니다. 언급 한대로 패키지를 바꿀 때까지 모든 것이 잘 작동했습니다.

스택 추적 : 클래스가 더 이상 존재하지 않으면 당신은 클래스의 인스턴스를 직렬화 할 수 없습니다

*java.lang.ClassNotFoundException: PaintArrayList 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:340) 
    at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:626) 
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1613) 
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) 
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371) 
    at grl.paintproject.Application.loadPictureFile(Application.java:167) 
    at grl.paintproject.ButtonPanel.actionPerformed(ButtonPanel.java:126) 
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) 
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 
    at java.awt.Component.processMouseEvent(Component.java:6527) 
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) 
    at java.awt.Component.processEvent(Component.java:6292) 
    at java.awt.Container.processEvent(Container.java:2234) 
    at java.awt.Component.dispatchEventImpl(Component.java:4883) 
    at java.awt.Container.dispatchEventImpl(Container.java:2292) 
    at java.awt.Component.dispatchEvent(Component.java:4705) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898) 
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533) 
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462) 
    at java.awt.Container.dispatchEventImpl(Container.java:2278) 
    at java.awt.Window.dispatchEventImpl(Window.java:2739) 
    at java.awt.Component.dispatchEvent(Component.java:4705) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746) 
    at java.awt.EventQueue.access$400(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:697) 
    at java.awt.EventQueue$3.run(EventQueue.java:691) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86) 
    at java.awt.EventQueue$4.run(EventQueue.java:719) 
    at java.awt.EventQueue$4.run(EventQueue.java:717) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:716) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
    at grl.paintproject.DrawPanel.paint(DrawPanel.java:47) 
    at javax.swing.JComponent.paintToOffscreen(JComponent.java:5217) 
    at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:290) 
    at javax.swing.RepaintManager.paint(RepaintManager.java:1252) 
    at javax.swing.JComponent._paintImmediately(JComponent.java:5165) 
    at javax.swing.JComponent.paintImmediately(JComponent.java:4976) 
    at javax.swing.RepaintManager$3.run(RepaintManager.java:811) 
    at javax.swing.RepaintManager$3.run(RepaintManager.java:794) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:794) 
    at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:769) 
    at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:718) 
    at javax.swing.RepaintManager.access$1100(RepaintManager.java:62) 
    at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1680) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744) 
    at java.awt.EventQueue.access$400(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:697) 
    at java.awt.EventQueue$3.run(EventQueue.java:691) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:714) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)* 
+1

stacktrace를 제공하면 – LMK

+0

@LMK 스택 추적이 추가되는 것이 좋습니다. – user3238181

답변

0

. 이름을 변경했습니다. 더 이상 같은 클래스가 아닙니다.

+0

나는 수업의 이름을 바꾸지 않았다. 패키지를 기본 패키지에서 내가 만든 새 패키지로 옮겼습니다. 그 이름이 "이름을 바꾼다"고 생각합니까? 한 패키지의 클래스를 사용하여 파일을 쓰는 경우 동일한 클래스를 사용하지만 다른 패키지에있는 파일을 다시 읽을 수 없다는 말입니까? – user3238181

+0

예, 패키지 이름이 중요합니다. – nitind

+0

삭제 해 주셔서 감사합니다. 아직도 나에게는 이상한 것처럼 보인다. 이 문서는 어디에 문서화되어 있습니까? – user3238181