2017-09-19 2 views
0

BrowserView을 만들 때 오류가 발생하면 javax.swing.filechooser.FileFilter이라는 문제가있는 것 같습니다. Guice를 사용하여 내 화면을 인스턴스화하지만 영향이 없어야합니다. 임베디드 브라우저로 내 응용 프로그램을 실행할 때 다음과 같이 표시됩니다.NoClassDefFoundError OSGi에서 JxBrowser를 실행할 때 FileFilter가 누락됩니다

ERROR [Init thread] 19:37:24 19/09/17: ExtensionLoading error cuased by 
java.lang.NoClassDefFoundError: javax/swing/filechooser/FileFilter 
    at com.teamdev.jxbrowser.chromium.swing.BrowserView.<init>(SourceFile:73) 

OpenJDK 1.8에서 실행됩니다. JxBrowser 번들을 두 번 확인했는데 정확히 javax.swing을 가져 오는 것으로 보입니다. 무엇을 찾을 지에 대한 제안?

at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:987) 
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1013) 
at com.ur.injection.GuiceBuilder.get(GuiceBuilder.java:27) 
at gui.main.MainPanel.initFlippablePanel(MainPanel.java:45) 
at gui.main.MainPanel.<init>(MainPanel.java:27) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
at com.google.inject.internal.DefaultConstructionProxyFactory$2.newInstance(DefaultConstructionProxyFactory.java:85) 
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) 
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) 
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) 
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) 
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) 
at com.google.inject.Scopes$1$1.get(Scopes.java:65) 
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) 
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38) 
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62) 
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84) 
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) 
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) 
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) 
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) 
at com.google.inject.Scopes$1$1.get(Scopes.java:65) 
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) 
at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978) 
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) 
at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974) 
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1013) 
at com.ur.injection.GuiceBuilder.get(GuiceBuilder.java:27) 
at gui.main.URGUI.<init>(URGUI.java:119) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
at com.google.inject.internal.DefaultConstructionProxyFactory$2.newInstance(DefaultConstructionProxyFactory.java:85) 
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) 
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) 
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) 
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) 
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) 
at com.google.inject.Scopes$1$1.get(Scopes.java:65) 
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) 
at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978) 
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024) 
at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974) 
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1013) 
at com.ur.injection.GuiceBuilder.get(GuiceBuilder.java:27) 
at gui.main.URGUI$5.run(URGUI.java:222) 
Caused by: java.lang.NoClassDefFoundError: javax/swing/filechooser/FileFilter 
at com.teamdev.jxbrowser.chromium.swing.BrowserView.<init>(SourceFile:73) 
at com.ur.g5.runscreen.G5RunPanel.initComponents(G5RunPanel.java:227) 
at com.ur.g5.runscreen.G5RunPanel.<init>(G5RunPanel.java:85) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
at com.google.inject.internal.DefaultConstructionProxyFactory$2.newInstance(DefaultConstructionProxyFactory.java:85) 
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) 
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) 
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) 
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) 
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) 
at com.google.inject.Scopes$1$1.get(Scopes.java:65) 
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) 
at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:54) 
at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38) 
at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62) 
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84) 
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) 
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) 
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) 
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) 
at com.google.inject.Scopes$1$1.get(Scopes.java:65) 
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) 
at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978) 
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) 
at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974) 
... 49 more 
Caused by: java.lang.ClassNotFoundException: javax.swing.filechooser.FileFilter not found by com.teamdev.jxbrowser.chromium [32] 
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1558) 
at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79) 
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1998) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
... 77 more 
ERROR [Init thread] 19:37:24 19/09/17: ExtensionLoading error cuased by 
java.lang.NoClassDefFoundError: javax/swing/filechooser/FileFilter 
at com.teamdev.jxbrowser.chromium.swing.BrowserView.<init>(SourceFile:73) 
at com.ur.g5.runscreen.G5RunPanel.initComponents(G5RunPanel.java:227) 
at com.ur.g5.runscreen.G5RunPanel.<init>(G5RunPanel.java:85) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
at com.google.inject.internal.DefaultConstructionPrCaused by: java.lang.NoClassDefFoundError: javax/swing/filechooser/FileFilter at com.teamdev.jxbrowser.chromium.swing.BrowserView.(SourceFile:73) at com.ur.g5.runscreen.G5RunPanel.initComponents(G5RunPanel.java:227) at com.ur.g5.runscreen.G5RunPanel.(G5RunPanel.java:85) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at com.google.inject.internal.DefaultConstructionProxyFactory$2.newInstance(DefaultConstructionProxyFactory.java:85) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) at com.google.inject.Scopes$1$1.get(Scopes.java:65) at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:54) at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38) at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84) at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) at com.google.inject.Scopes$1$1.get(Scopes.java:65) at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974) ... 49 more Caused by: java.lang.ClassNotFoundException: javax.swing.filechooser.FileFilter not found by com.teamdev.jxbrowser.chromium [32] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1558) at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1998) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 77 more ERROR [Init thread] 19:37:24 19/09/17: ExtensionLoading error cuased by java.lang.NoClassDefFoundError: javax/swing/filechooser/FileFilter at com.teamdev.jxbrowser.chromium.swing.BrowserView.(SourceFile:73) at com.ur.g5.runscreen.G5RunPanel.initComponents(G5RunPanel.java:227) at com.ur.g5.runscreen.G5RunPanel.(G5RunPanel.java:85) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at com.google.inject.internal.DefaultConstructionProxyFactory$2.newInstance(DefaultConstructionProxyFactory.java:85) at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) at com.google.inject.Scopes$1$1.get(Scopes.java:65) at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:54) at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978) at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)oxyFactory$2.newInstance(DefaultConstructionProxyFactory.java:85) 
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85) 
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254) 
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) 
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) 
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) 
at com.google.inject.Scopes$1$1.get(Scopes.java:65) 
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) 
at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:54) 
at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978) 
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) 
at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974) 
+1

JxBrowser는'javax.swing.filechooser' 패키지가 필요하지만'javax.swing' 패키지 만 필요하다는 것을 명시하지 않았기 때문에 JxBrowser는 OSGi 준비가되어 있지 않은 것으로 보입니다. MANIFEST.MF를 가져 오기 섹션에 추가하여 해킹하면이 문제가 해결됩니다. –

답변

0

system requirements에 따르면 JxBrowser가 오픈 JDK를 지원하지 않습니다 다음과 같이

전체 스택 추적입니다. Oracle, Apple 및 IBM JDK/JRE 만 지원합니다.

+0

OpenJDK를 실행하는 데 문제가있는 것 같지 않지만 앞으로 개발자로서 계속 노력할 것입니다. 문제에 대한 실제 해결책은 위의 주석을 참조하십시오. –

관련 문제