当从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(使用代码存根)的情况下进行了测试,问题仍然存在。
我真的不知道该怎么解决...谢谢您的帮助。
答案 0 :(得分:0)
我找到了一个解释。
当Netbeans创建分发软件包时,“ asm-all-5.0.1.jar”没有被复制到“ dist / myApp / platform / core”目录中。似乎是Netbeans 8.1中的错误...
我可以在.zip分发包中手动修复它,但是如何在.exe安装程序中修复它?