javafx 11 не находит основной класс, из которого он был вызван

Я пытаюсь запустить приложение из определения продукта eclipse. Я синхронизировал продукт с определяющим его плагином и в «содержании» нажал «все необходимые плагины».

Трассировка стека говорит сама за себя. Комплектация конечно правильная.

java.lang.RuntimeException: java.lang.ClassNotFoundException: org.rulez.demokracia.zenta3.editor.ZentaApplication
    at javafx.application.Application.launch(Application.java:304)
    at org.rulez.demokracia.zenta3.editor.ZentaApplication.run(ZentaApplication.java:41)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.eclipse.equinox.internal.app.EclipseAppContainer.callMethodWithException(EclipseAppContainer.java:592)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:205)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:661)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1476)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1449)
Caused by: java.lang.ClassNotFoundException: org.rulez.demokracia.zenta3.editor.ZentaApplication
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:190)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
    at org.eclipse.osgi.internal.framework.ContextFinder.loadClass(ContextFinder.java:135)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:374)
    at javafx.application.Application.launch(Application.java:292)
    ... 19 more

класс ZentaApplication является общедоступным, и все экспортируется из всех плагинов. Файл продукта лежит в том же проекте, что и класс.

Библиотеки Javafx экспортируются из плагина, специально созданного для этой цели, и, конечно, это зависимость от основного плагина.


person Árpád Magosányi    schedule 13.04.2019    source источник


Ответы (1)


Помогло перемещение библиотек из плагина зависимостей прямо в основной плагин. Моя гипотеза состоит в том, что основной класс был недоступен из пакета зависимостей.

person Árpád Magosányi    schedule 13.04.2019