我在运行 bnd 启动器时遇到问题。实际问题是在使用 gradle 构建期间出现的,但是当我直接调用 jar 时它也不起作用。Launcher 类确实存在于那个 jar 中,并且它确实有一个 main 方法。有谁知道我为什么会收到这个错误?
$ java -cp cnf/cache/biz.aQute.launcher/biz.aQute.launcher-1.4.0.jar aQute.launcher.Launcher
Error: Could not find or load main class aQute.launcher.Launcher
当我阅读 jar 的内容时,我可以看到 Launcher 类确实存在。
$ jar tvf cnf/cache/biz.aQute.launcher/biz.aQute.launcher-1.4.0.jar
1490 Fri Sep 26 06:49:00 CEST 2014 META-INF/MANIFEST.MF
...
1586 Fri Sep 26 06:49:00 CEST 2014 aQute/launcher/Launcher$1.class
2270 Fri Sep 26 06:49:00 CEST 2014 aQute/launcher/Launcher$2.class
794 Fri Sep 26 06:49:00 CEST 2014 aQute/launcher/Launcher$3.class
1133 Fri Sep 26 06:49:00 CEST 2014 aQute/launcher/Launcher$4.class
1100 Fri Sep 26 06:49:00 CEST 2014 aQute/launcher/Launcher$5.class
1260 Fri Sep 26 06:49:00 CEST 2014 aQute/launcher/Launcher$AllPermissionCollection.class
1149 Fri Sep 26 06:49:00 CEST 2014 aQute/launcher/Launcher$AllPolicy.class
37566 Fri Sep 26 06:49:00 CEST 2014 aQute/launcher/Launcher.class
...
我还尝试从另一个随机 jar 加载另一个随机类,并且确实有效。仅当缺少 main 方法时,我才会收到不同的错误(在类中找不到 Main 方法)。
所有这些文件的权限也是相同的,否则我也无法运行“jar tvf”。
那么,有什么想法吗?