javafx 11 не находит основной класс, из которого он был вызван - PullRequest
0 голосов
/ 13 апреля 2019

Я пытаюсь запустить приложение из определения продукта 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 экспортируются из плагина, специально созданного для этой цели, и это, конечно, зависимость от основного плагина.

1 Ответ

0 голосов
/ 13 апреля 2019

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

...