【发布时间】:2011-04-28 12:10:11
【问题描述】:
我有以下问题:
我正在编写一个应用程序,它使用来自 Netbeans 平台的一些 JAR。确切地说,我只是使用 Netbeans Visual Library 来创建一些图表。这可以在不使用 Netbeans 平台的情况下通过从平台中提取 3 个 JAR 来完成。这一切都很好,除了 1 个问题。
一些背景
我正在使用Java Simple Plugin Framework (JSPF) 来处理我的插件管理。所以我有一个应用程序,它基本上由一个骨架框架组成,然后根据它找到的插件 JAR,它可以做各种事情,其中之一就是绘制图形。此功能的 JAR 插件包含它所有的依赖库。这是通过将 JAR 导出为 IntelliJ 中的工件来完成的,这将解压缩所有依赖库并将它们重新打包到您的库中(因此您需要的一切都在那里)。
问题
似乎正在发生的事情是,当它尝试开始使用 embedded 库中的类时,它可以正常工作,但是当它需要资源时(特别是在我的情况下为 .png),它抱怨找不到它。
我的想法
我唯一能想到它为什么不起作用的原因是,它可能是因为插件 JAR 不在类路径中。会是这样吗?
是否有可能在 MANIFEST 中指定一个类路径目录?否则我必须创建自己的ClassLoader 并手动加载插件目录中的所有 JAR 吗?
谢谢!
更新:
我随后指出这确实是类路径的问题。如果我将复合库放在类路径上,一切都会完美运行。我现在遇到的问题是:
- 如果我将库复制到
/Library/Java/Home/lib/ext/,它可以正常工作。如果我使用java -cp "/path/to/plugins/myLib.jar" -jar Application.jar执行应用程序,它就不起作用。 - 如何将插件目录中的所有 jar 加载到我的应用程序中,以便使用其中的资源?
再次感谢!
【问题讨论】:
标签: java plugins jar classpath