2017-01-31 6 views
1

Maven을 사용하는 Java 프로젝트에서 JxBrowser 용 라이브러리를 추가합니다.런타임에 BrowserView 클래스의 ClassNotFoundException

프로그램이 오류없이 컴파일되지만 Intelij IDEA에서 실행하려고하면 오류가 반환됩니다.

그것은 시도 (이것은 lib에 패키지 com.teamdev.jxbrowser.chromium.swing의 클래스) BrowserView 개체를 만들 때 표시하며 두 가지 오류 NoClassDefFoundErrorCLassNotFoundException을 반환하고 전체 메시지는 다음과 같습니다

java.lang.NoClassDefFoundError: com/teamdev/jxbrowser/chromium/swing/BrowserView 
    at com.goodsoft.stockbox.jxbrowser.JxBrowser.<init>(JxBrowser.java:26) 
    at com.goodsoft.stockbox.market.view.window.StockBoxWindowController.lambda$createMenuWindow$17(StockBoxWindowController.java:211) 
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) 
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
    at javax.swing.AbstractButton.doClick(AbstractButton.java:376) 
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833) 
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(BasicMenuItemUI.java:943) 
    at javax.swing.JMenuItem.fireMenuDragMouseReleased(JMenuItem.java:586) 
    at javax.swing.JMenuItem.processMenuDragMouseEvent(JMenuItem.java:483) 
    at javax.swing.JMenuItem.processMouseEvent(JMenuItem.java:429) 
    at javax.swing.MenuSelectionManager.processMouseEvent(MenuSelectionManager.java:329) 
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:879) 
    at java.awt.Component.processMouseEvent(Component.java:6535) 
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) 
    at java.awt.Component.processEvent(Component.java:6300) 
    at java.awt.Container.processEvent(Container.java:2236) 
    at java.awt.Component.dispatchEventImpl(Component.java:4891) 
    at java.awt.Container.dispatchEventImpl(Container.java:2294) 
    at java.awt.Component.dispatchEvent(Component.java:4713) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) 
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) 
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) 
    at java.awt.Container.dispatchEventImpl(Container.java:2280) 
    at java.awt.Window.dispatchEventImpl(Window.java:2750) 
    at java.awt.Component.dispatchEvent(Component.java:4713) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) 
    at java.awt.EventQueue.access$500(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:709) 
    at java.awt.EventQueue$3.run(EventQueue.java:703) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) 
    at java.awt.EventQueue$4.run(EventQueue.java:731) 
    at java.awt.EventQueue$4.run(EventQueue.java:729) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) 
    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) 
Caused by: java.lang.ClassNotFoundException: com.teamdev.jxbrowser.chromium.swing.BrowserView 
    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) 
    ... 45 more 

어떻게 해결할 수 있습니까?

입력 할 때 BrowserView browserView = new BrowserView() 강조 표시되어 있지 않으면 프로젝트 리소스에서 lib가 발견되었음을 의미합니다.

의 pom.xml에는 다음이 포함 프로젝트를 컴파일 할 때 라이브러리이 에러없이 성공적으로 다운로드

<dependencies> 
    <dependency> 
     <groupId>com.teamdev.jxbrowser</groupId> 
     <artifactId>jxbrowser-mac</artifactId> 
     <version>6.11.1</version> 
    </dependency> 
</dependencies> 

<repositories> 
    <repository> 
     <id>com.teamdev.jxbrowser</id> 
     <url>http://maven.teamdev.com/repository/products</url> 
    </repository> 
</repositories> 

.

편집

나는 OS X의 시스템 인 IntelliJ의 IDEA에서 작동합니다. 내가 모듈 설정에 license.jar 파일을 추가는 - 내가 "클래스"를 선택 유형에 대해 또한

편집 2

나는 System.getProperty("java.class.path")를 확인하고있다 "컴파일"로 잘 살고있다 나 한테 물어 탭 종속성 JxBrowser에 .jar 파일이 없습니다 ...하지만 왜? 이 모듈 종속성에서 설정

+0

이 문제는 항아리 포장 방법에 문제가있을 수 있지만 그 방법이 전혀 보이지 않는 것입니다. pom에 대해 더 자세한 정보를 제공하고 포장 후에 어떤 항아리를 사용하는지, 그리고 서로 상대적인 위치를 알려주십시오. – Gimby

+0

하지만 문제는 내가 Intelij IDAE에서 프로젝트를 실행하고 jar에서 실행하지 않는 경우입니다. 패키지 작성은 오류입니다. 오류를 반환하지 않습니다. – ACz

+0

내게 당신의 질문에 IntelliJ에 대해 언급 해주십시오. 그렇다면 거기에 뭔가 틀린 것이 틀림 없으므로 프로젝트 설치 방법을 자세히 설명해야합니다. – Gimby

답변

1

윈도우로 (단지 서로 다른 시스템에 대한

<dependency> <groupId>com.teamdev.jxbrowser</groupId> <artifactId>jxbrowser</artifactId> <version>${jxbrowser.version}</version> </dependency> 

다음과 같이 의존성을 추가하는 방법에 대한 아무런 정보가 없었다
JxBrowser 설치 안내서에서

(JxBrowser Installation를) 해결되면, Mac, Linux), 메인 lib 디렉토리는 아닙니다.