我正在使用一个库来扫描我的类路径,以便找到我的接口(interface)的实现(这可能看起来很奇怪,我知道有更好的方法,但我无法更改它)。 当我在独立应用程序中使用此库时,它可以正常工作
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 在这个库中使用,我真的不想对所说的库进行任何更改。
提前致谢。
最佳答案
在无法控制类加载器的情况下,没有可移植的方法来进行类路径扫描。实现这一目标的更好选择是:
- 使用ServiceLoader和
META-INF/services
- 使用 CDI 并将实现注册为 CDI bean
关于java - JBoss环境下将war文件添加到java.class.path中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18335383/