在 Eclipse IDE 中获取"Error: Could not find or load main class aQute.launcher.Launcher",即使它在命令行中工作



我目前正在进行一个使用OSGi/Bndtools的项目。我还是OSGi/Bndtools的新手,所以请耐心等待。

我一直在使用带有Bndtools(5.0.1(的Eclipse IDE(2020-03(进行开发。然而,我重新格式化了我的PC,似乎无法让我的OSGi程序在我的新Eclipse IDE/Bndtools设置中工作。我目前正在使用Eclipse(2020-03(和Bndtools(5.3.0 REL(。(我还没有找到下载旧版Bndtools 5.0.1的方法(。

错误摘要:当我为我的BND运行描述文件(stub.bndrun(单击">运行OSGi"按钮时,我在Eclipse控制台中看到以下错误:

Error: Could not find or load main class aQute.launcher.Launcher

控制台中没有给出其他文本,OSGi程序也无法运行。

然而,当我在终端中执行以下行时,我的OSGi/Bnd程序确实运行

bnd stub.bndrun

其中stub.bndrun是相同的BND运行描述文件。

编辑:以下是您可以用来重现我的问题的回购:https://github.com/vorajeem/bndtools_error_reproduce_public.git

stub.bndrun的其他细节如下:

-runfw: org.apache.felix.framework;version='[5.2.0,5.2.0]'
-runee: JavaSE-1.8
-runsystemcapabilities: ${native_capability}
-resolve.effective: active
-runvm: -Dosgi.console

我认为我的问题与下面的问题中给出的问题类似:找不到主类,而它确实存在。但我不理解上面链接中给出的问题的答案。

尝试1:根据上面给出的问题#27457710的答案,我已经将Apache Felix框架(5.2.0(添加到"Run Bundles"中,但我仍然收到相同的错误消息。

我在StackOverflow上看到了其他类似错误消息的问题(即Could not find or load main class [package-name](。然而,没有提到Bndtools,我认为我的问题可能与在我的电脑上设置Bndtools的方式有关。

尝试2:我已将"biz.aQute.slauncher"(3.0.0(添加到"Run Bundles"中,但仍然收到相同的错误消息。

请求您的帮助。提前谢谢。

编辑:

我已经将-runvm -verbose:class添加到stub.bndrun中,并单击"运行OSGi"/"调试OSGi"。输出是加载的类的长列表(以及我之前看到的错误(。我已经添加了输出的前2行和最后几行。似乎成功地加载了所有JAVA包(加载的包都以java.sun.前缀开头,它们都来自/usr/lib/jvm/java-8-openjdk-amd64/jre/lib(。

但是,它找不到任何OSGi/Bndtools包(??(。我想知道我的Bndtools存储库是否设置正确?。。。我怎样才能确保是这样?

[Opened /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar]
[Loaded java.lang.Object from /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar]
[Loaded java.io.Serializable from /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar]
...
[Loaded java.text.AttributedCharacterIterator$Attribute from /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar]
[Loaded java.text.Format$Field from /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar]
[Loaded java.text.MessageFormat$Field from /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar]
[Loaded java.lang.Shutdown from /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar]
[Loaded java.lang.Shutdown$Lock from /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar]
Error: Could not find or load main class aQute.launcher.Launcher

我遇到了同样的问题。我只是想启动一个用bndtools模板生成的空OSGi组件。

在我的情况下,我只需要删除生成的模块-info.java,bndrun就可以正确启动了。

相关内容

  • 没有找到相关文章

最新更新