Сбой приложения RCP моего Netbeans при запуске через установщик, сгенерированный Netbeans - PullRequest
1 голос
/ 15 апреля 2019

Приложение Netbeans RCP компилируется и работает нормально при запуске из среды IDE (Netbeans 11 / Win10).

Если я запускаю его с помощью установщика, сгенерированного Netbeans, я получаю следующую ошибку:

Exception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor while loading org.openide.filesystems.FileSystem; see http://wiki.netbeans.org/DevFaqTroubleshootClassNotFound
        at org.netbeans.ProxyClassLoader.selfLoadClass(ProxyClassLoader.java:238)
        at org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:162)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at org.netbeans.core.startup.CLIOptions.cli(CLIOptions.java:134)
        at org.netbeans.core.startup.CLIOptions.cli(CLIOptions.java:73)
        at org.netbeans.CLIHandler.notifyHandlers(CLIHandler.java:209)
        at org.netbeans.CLIHandler.initialize(CLIHandler.java:494)
        at org.netbeans.CLIHandler.initialize(CLIHandler.java:359)
        at org.netbeans.MainImpl.execute(MainImpl.java:168)
        at org.netbeans.MainImpl.main(MainImpl.java:60)
        at org.netbeans.Main.main(Main.java:58)
Caused by: java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at org.netbeans.PatchByteCode.patchAsmMethod(PatchByteCode.java:161)
        at org.netbeans.PatchByteCode.apply(PatchByteCode.java:152)
        at org.netbeans.JarClassLoader.doLoadClass(JarClassLoader.java:226)
        at org.netbeans.ProxyClassLoader.selfLoadClass(ProxyClassLoader.java:234)
        ... 10 more
Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.ClassVisitor starting from org.netbeans.MainImpl$BootClassLoader@31befd9f with possible defining loaders null and declared parents ]
        at org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:199)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 16 more
Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.ClassVisitor
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:197)
        ... 17 more

Я пробовал на 2 разных компьютерах (Win10), с Netbeans 8 и Netbeans 11, та же проблема. Мое приложение использует Java 7.

Я проверил http://wiki.netbeans.org/DevFaqTroubleshootClassNotFound, как упомянуто в сообщении об ошибке, но не обнаружил проблемы "verify-class-linkage" при сборке приложения. Я использую только одну внешнюю библиотеку, использующую оболочку библиотеки модулей, и протестирован с удаленной библиотекой (с использованием заглушки кода), проблема все еще существует.

Я действительно понятия не имею, что попытаться решить эту проблему ... Спасибо за вашу помощь.

1 Ответ

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

Я нашел объяснение.

Когда Netbeans создает дистрибутив, «asm-all-5.0.1.jar» не копируется в каталог «dist / myApp / platform / core», как это должно быть. Похоже, ошибка от Netbeans 8.1 ...

Я могу исправить это вручную в дистрибутивах .zip, но как это исправить в установщике .exe?

...