【问题标题】:My Netbeans RCP app fails when launched via the Netbeans-generated installer通过 Netbeans 生成的安装程序启动时,我的 Netbeans RCP 应用程序失败
【发布时间】:2019-04-15 20:32:31
【问题描述】:

从 IDE (Netbeans 11/Win10) 启动时,我的 Netbeans RCP 应用程序编译并运行良好。

如果我使用 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,但我在构建应用程序时没有发现“验证类链接”问题。我只使用了一个使用模块库包装器的外部库,并在移除了 lib 的情况下进行了测试(使用代码存根),问题仍然存在。

我真的不知道该如何解决这个问题...感谢您的帮助。

【问题讨论】:

    标签: java netbeans netbeans-platform


    【解决方案1】:

    我找到了解释。

    当 Netbeans 创建分发包时,“asm-all-5.0.1.jar”不会像应有的那样复制到“dist/myApp/platform/core”目录中。似乎是来自 Netbeans 8.1 的错误...

    我可以在 .zip 分发包中手动修复它,但是如何在 .exe 安装程序中修复它?

    【讨论】:

    • 现在“干净”修复:在我的 Netbeans 项目/属性/库中,我从平台集群中删除了“文件系统 API 8.0 兼容性”和“执行 API 8.兼容性”模块,它们是对我的应用没用。现在分发包运行良好!
    猜你喜欢
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 2011-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多