0

我正在使用一个库来扫描我的类路径,以便找到我的接口的实现(这可能看起来很奇怪,我知道有更好的方法,但我无法改变它)。当我在一个独立的应用程序中使用这个库时,它的工作原理是

java.class.path

返回我的 jar 文件所在的类路径。现在我试图在部署到 Jboss 7 的 web 项目中使用这个库。在这种情况下询问类路径时,会返回:

java.class.path /Applications/jboss-as-7.1.1.Final/jboss-modules.jar

我真的不知道如何向 java.class.path 环境变量添加一些东西。有什么想法可以向这个变量添加一些东西或解决这个问题的更好方法吗?这个库中存在一个 add() 函数,我可以在其中添加需要扫描的 jar 文件。因此,如果有人能告诉我如何获取此 war 文件的位置,那也会有所帮助;)。

这是我正在谈论的库:http: //software.clapper.org/javautil/

注意:java.class.path 在这个库中使用,我真的不想对所说的库进行任何更改。

提前致谢。

4

1 回答 1

1

在无法控制类加载器的情况下,没有可移植的方法来进行类路径扫描。实现这一目标的更好选择是:

  • 使用ServiceLoaderMETA-INF/services
  • 使用 CDI 并将实现注册为 CDI bean
于 2013-08-20T15:16:34.927 回答